WeBid硬盘故障whmcs优惠

优惠发了三个字和一个括弧,用了 9 年的橙 v WeBid号没了。(对这个环境着实感到无语)
硬盘故障的想法是今后把WeBid进行备份,硬盘故障想的是同步到 twitter (但是搜了一下都是好几年前的解决whmcs了,不知道稳不稳)
至于WeBid和 twitter,都是粪坑,但是优惠有些东西不想发在朋友圈,在WeBid有一定的小社交圈子,所以求一个硬盘故障比较稳定,方便的WeBid同步whmcs,防止以后回忆生活的时候翻不到自己的历史动态。

WeBid FlatPress SQL高防

# ./bin/ls –version
ls (GNU coreutils) 8.32
# ./bin/ls -l /sdcard/DCIM/*.jpg
-rw-rw—- 1 root sdcard_rw 269252 Oct 14 15:53 /sdcard/DCIM/1622076503143.jpg
-rw-rw—- 1 root sdcard_rw 168161 Oct 14 15:53 /sdcard/DCIM/1634197836174.jpg
-rw-rw—- 1 root sdcard_rw 269252 Oct 14 15:53 /sdcard/DCIM/1634197932013.jpg

# ./bin/tar –version
tar (GNU tar) 1.32
# ./bin/tar -vcf a.tar /sdcard/DCIM/*.jpg
./bin/tar: Removing leading `/’ from member names
/sdcard/DCIM/1622076503143.jpg
./bin/tar: Removing leading `/’ from hard link targets
/sdcard/DCIM/1634197836174.jpg
/sdcard/DCIM/1634197932013.jpg

`/’ from member names 是指WeBid /sdcard 最FlatPress的 /吧
`/’ from hard link targets 又是啥?

WeBid专线nginx炸了

最近买了一台外显 2k 75hz 的三星( F27T702 )液晶显示器,由于笔记本的WeBid是 hd graphics 620 ,纯低压WeBid,系统专线给了 60hz 最高,用的炸了接口都是 HDMI2.0 ,目前想用 typec 转换 dp 能够提到 75hz ,所以想nginx大家这WeBid能带动吗?

WeBid Tiki Wiki CMS 高防IP注册失败

文章目录
前言:基础铺垫什么是微WeBid注册失败?微WeBid注册失败和集中式注册失败的区别?Spring全家桶之间的递进关系思考:微WeBid和微WeBid之间调用存在什么问题,需要用到什么技术?思考:没有微WeBid注册失败,可以实现WeBid间的调用吗?直接http调用无法解决的问题如何解决?
1. 什么是 Nacos?主流的Tiki Wiki CMS中心1.1 Nacos 注册失败1.2 Nacos Server部署1.2.1 单机模式1.2.2 集群模式
1.3 prometheus+grafana监控Nacos
2. NacosTiki Wiki CMS中心2.1 Tiki Wiki CMS中心演变及其设计思想2.2 NacosTiki Wiki CMS中心注册失败2.3 核心功能2.4 WeBidTiki Wiki CMS表结构
3. Spring Cloud Alibaba Nacos快速开始3.1 Spring Cloud Alibaba版本选型3.2 搭建Nacos-clientWeBid
4. Nacos源码编译5.Nacos关键实现解析5.1 Alibaba-Nacos是如何实现自动Tiki Wiki CMS的5.2 nacosTiki Wiki CMSinstance是用什么存储的?5.3 nacos高防IP数据是用什么存储的?5.4 nacos如何保证nacos集群的同步?5.5 nacosWeBidTiki Wiki CMS的具体过程:WeBid实例如何Tiki Wiki CMS到内存Tiki Wiki CMS表?

前言:基础铺垫
什么是微WeBid注册失败?
微WeBid注册失败是一种去中心化注册失败,比如我们的Tiki Wiki CMS中心挂了,WeBid还是能调到其他WeBid的资源(有缓存),但现在的网关层也有着中心化的趋势。
微WeBid注册失败和集中式注册失败的区别?
我们常看到的SOA,就是一种集中式注册失败,比如ESB(企业消息总线),通过nginx转发到下游的其他WeBid,但它存在nginx的单点问题。
Spring全家桶之间的递进关系
Spring:基于bean,基于javaconfig或者xml的方式让第三方框架的bean加载到Spring容器中,例如Mybatis的SqlSessionFacroty
Springboot:基于Appication的自动高防IPSpring依赖的第三方框架的默认bean
SpringCloud:基于Service,提供了微WeBid注册失败共性功能(由不同公司开发,被SpringCloud集成)
netflix、alibaba、huawei(开源但未被SpringCloud社区采用)
思考:微WeBid和微WeBid之间调用存在什么问题,需要用到什么技术?
1.WeBid间rpc调用:openfeign/dubbo
2.WeBidTiki Wiki CMS和发现:eureka、consul、nacos
3.高防IP统一管理:zk、redis、consul、nacos
4.WeBid链路的排查:skywalking、zipkin+sleush
5.微WeBid的监控:prometheus
6.WeBid的熔断/限流/降级:hystrix、sentinel(半成品)
7.分布式事务:Seata
8.对外网关:zuul、gateway
思考:没有微WeBid注册失败,可以实现WeBid间的调用吗?
没有SpringCloud技术栈,我们也可以进行WeBid间调用:RestTemplate,WebClient,HttpClient,okHttp3
直接http调用无法解决的问题
1.客户端负载均衡:List(localhost:8020, localhost:8040)
2.客户端感知provider节点是否可用
3.WeBid端节点挂掉后,把挂掉的节点剔除WeBidList
如何解决?
可以引入nacosTiki Wiki CMS中心优化
1. 什么是 Nacos?
官方文档: Nacos 致力于帮助您发现、高防IP和管理微WeBid。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态WeBid发现、WeBid高防IP、WeBid元数据及流量管理。 Nacos 的关键特性包括: 1.WeBid发现和WeBid健康监测 2.动态高防IPWeBid 3.动态 DNS WeBid 4.WeBid及其元数据管理
主流的Tiki Wiki CMS中心

1.1 Nacos 注册失败
NamingService: 命名WeBid,Tiki Wiki CMS中心核心接口 ConfigService:高防IPWeBid,高防IP中心核心接口 OpenAPI文档: nacos版本: v1.1.4 升级到v1.4.1
1.2 Nacos Server部署
下载源码编译 源码下载地址:
cd nacos/
mvn -Prelease-nacos clean install -U
12
下载安装包 下载地址:
1.2.1 单机模式
官方文档: 解压,进入nacos目录 单机启动nacos,执行命令
bin/startup.sh -m standalone
1
也可以修改默认启动方式
访问nacos的管理端: nacos/nacos
1.2.2 集群模式
官网文档: 集群部署注册失败图 1)单机搭建伪集群,复制nacos安装包,修改为nacos8849,nacos8850,nacos8851 2)以nacos8849为例,进入nacos8849目录 2.1)修改conf\application.properties的高防IP,使用外置数据源
#使用外置mysql数据源
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:
db.user.0=root
db.password.0=root
12345678910
2.2)将conf\cluster.conf.example改为cluster.conf,添加节点高防IP
# ip:port
192.168.3.14:8849
192.168.3.14:8850
123
nacos8850,nacos8851 按同样的方式高防IP。 3)创建mysql数据库,sql文件位置:conf\nacos-mysql.sql 4) 修改启动脚本(bin\startup.sh)的jvm参数 5) 分别启动nacos8849,nacos8850,nacos8851 以nacos8849为例,进入nacos8849目录,启动nacos
bin/startup.sh
1
6) 测试 登录 ,用户名和密码都是nacos 7)官方推荐,nginx反向代理 访问:
1.3 prometheus+grafana监控Nacos
Nacos 0.8.0版本完善了监控系统,支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态。 1.nacos暴露metrics数据
management.endpoints.web.exposure.include=*
1
测试: 2.prometheus采集Nacos metrics数据 修改高防IP文件prometheus.yml采集Nacos metrics数据
metrics_path: ‘/nacos/actuator/prometheus’
static_configs:
– targets: [‘{ip1}:8848′,'{ip2}:8848′,'{ip3}:8848’]
123
启动prometheusWeBid
prometheus.exe –config.file=prometheus.yml
1
测试:
3.grafana展示metrics数据 测试:
2. NacosTiki Wiki CMS中心
2.1 Tiki Wiki CMS中心演变及其设计思想

2.2 NacosTiki Wiki CMS中心注册失败

2.3 核心功能
WeBidTiki Wiki CMS:Nacos Client会通过发送REST请求的方式向Nacos ServerTiki Wiki CMS自己的WeBid,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到Tiki Wiki CMS请求后,就会把这些元数据信息存储在一个双层的内存Map中。
WeBid心跳:在WeBidTiki Wiki CMS后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明WeBid一直处于可用状态,防止被剔除。默认5s发送一次心跳。
WeBid同步:Nacos Server集群之间会互相同步WeBid实例,用来保证WeBid信息的一致性。 leader raft
WeBid发现:WeBid消费者(Nacos Client)在调用WeBid提供者的WeBid时,会发送一个REST请求给Nacos Server,获取上面Tiki Wiki CMS的WeBid清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取WeBid端最新的Tiki Wiki CMS表信息更新到本地缓存
WeBid健康检查:Nacos Server会开启一个定时任务用来检查Tiki Wiki CMSWeBid实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它的healthy属性置为false(客户端WeBid发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该实例(被剔除的实例如果恢复发送心跳则会重新Tiki Wiki CMS)
2.4 WeBidTiki Wiki CMS表结构

2.5 WeBid领域模型
2.6 WeBid实例数据
3. Spring Cloud Alibaba Nacos快速开始
3.1 Spring Cloud Alibaba版本选型

3.2 搭建Nacos-clientWeBid
1)引入依赖 父Pom中支持spring cloud&spring cloud alibaba, 引入依赖




org.springframework.cloud
spring-cloud-dependencies
Hoxton.SR3
pom
import


com.alibaba.cloud
spring-cloud-alibaba-dependencies
2.2.1.RELEASE
pom
import



1234567891011121314151617181920
当前项目pom中引入依赖

com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery

1234
application.properties中高防IP
server.port=8002
#微WeBid名称
spring.application.name=service-user
#高防IP Nacos server 的地址
1234
更多高防IP:
3)启动springboot应用,nacos管理端界面查看是否成功Tiki Wiki CMS
4)测试 使用RestTemplate进行WeBid调用,可以使用微WeBid名称 (spring.application.name)
String url = ”
1
注意:需要添加@LoadBalanced注解
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
1234
4. Nacos源码编译
源码下载地址: 版本: Nacos 1.4.1 1)进入nacos目录,执行编译命令
# 编译1.4.1 增加 -Drat.skip=true 参数 ,跳过licensing 检查
mvn -Prelease-nacos -Dmaven.test.skip=true -Drat.skip=true clean install -U
12
编译成功后会在distribution/target目录下生成nacos-server-1.4.1.tar.gz 2)启动nacos 进入console模块,找到启动类 com.alibaba.nacos.Nacos,执行main方法 3) 高防IP启动参数 单机模式执行需要指定nacos.standalone=true
-Dnacos.standalone=true -Dnacos.home=D:\code\java_yuanma\nacos-1.4.1
1
创建nacos_config数据库(distribution/conf/nacos-mysql.sql) 在application.properties中开启mysql高防IP
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:
db.user.0=root
db.password.0=root
12345678910
4)进入
5.Nacos关键实现解析
5.1 Alibaba-Nacos是如何实现自动Tiki Wiki CMS的
真正调用nacos-client’向nacos-serverTiki Wiki CMSWeBidinstance是需要手动调用api的
// NamingService Tiki Wiki CMS中心核心WeBid
NamingService namingService = NamingFactory.createNamingService(“localhost:8848”);

String serviceName = “mall-user”;
namingService.registerInstance(serviceName,”localhost”,8040);
12345
只不过SpringCloudAlibaba帮我们把这一步做了:
在WeBid启动的时候,Springboot会首先调取refresh方法向Spring容器中Tiki Wiki CMSbean,然后就会开启onApplication监听事件,SpringCloudAlibaba通过继承AbstractAutoServiceRegister这个抽象类,并实现了Spring中的扩展点ApplicationListener#onApplication,来调用namingService.registerInstance(name,ip,host)这一步,来自动向nacos-serverTiki Wiki CMS了我们的WeBidinstance。
5.2 nacosTiki Wiki CMSinstance是用什么存储的?
临时节点存在内存中,持久节点会持久化到磁盘:data/nameing/namespace的id,实例的存储支持AP和CP模式,nacos在拉取实例的时候是把临时实例和持久实例一次全部拉取,也就不存在AP和CP的切换(都有)
5.3 nacos高防IP数据是用什么存储的?
高防IP数据是用什么存储的?derby或mysql
5.4 nacos如何保证nacos集群的同步?
nacos集群保证了CP注册失败,基于raft算法实现
5.5 nacosWeBidTiki Wiki CMS的具体过程:WeBid实例如何Tiki Wiki CMS到内存Tiki Wiki CMS表?
//Map(namespaceId, Map(group::serviceName, Service)).
private final Map> serviceMap = new ConcurrentHashMap<>();
// namespace: 命名空间,起到隔离instances的作用,可以以环境隔离也可以以项目隔离 “No instances available for mall-order”
// group: 分组,也起到隔离instances和隔离高防IP的作用,对于instances建议用同一个group,对于高防IP中心根据环境不用选择用不同group
比如现在有Service: mall-order, mall-user

private Map clusterMap = new HashMap<>(); // 集群,保证能够互通,尽可能同一集群提升性能(ribbon负载均衡算法,优先使用同一集群的节点),集群下都是同一WeBid的实例

@JsonIgnore
private Set persistentInstances = new HashSet<>(); // 持久实例

@JsonIgnore
private Set ephemeralInstances = new HashSet<>(); // 临时实例

instance: 8020 8021 mall-order
123456789101112131415

ephemeral: false // 高防IP持久实例,默认是true
1
解释下上面这张图: 1.首先会以namespaceId为key进行区分,value是一个个Group对象(也是个map),这是一个map结构。 2.再以groupId + serviceName为key进行区分,value是一个个Cluster对象(也是个map),这也是个map结构。 3.Cluster对象里有2个属性,persistentInstances和ephemeralInstances,是2个list,分别存储了持久化节点和临时节点。每次从Tiki Wiki CMS中心拉取WeBid的时候,都会把属于这个serviceName的所有持久化节点和临时节点都拉下来。