第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

分布式系統(tǒng)的遠(yuǎn)程服務(wù)

標(biāo)簽:
Java 微服務(wù)

如果项目拆分为分布式系统,那么服务的生产者和消费者是不可少的,然后远程服务这块的技术点也是少不了的。

服务之间的调用可以采用不同的协议,TCP,UDP,HTTP,Hession,Protobuf等。每一种协议都有自己的特点HTTP用起来更简单,TCP用起来性能更好。

服务注册

注册中心也有很多选项,Zookeeper,etcd,Consul。ZooKeeper属于老牌的知名度很高的一个分布式协调组件,ectd是近些年新兴的基于REST风格的配置中心,ectd更简单。Consul的话配置起来也很简单,并且提供了健康检查和多数据中心。还是每种软件都有自己的优缺点,如果感兴趣需要我们多做一些研究。

Consul提供了自己的Wweb-UI界面,只是比较简陋。一般公司注册服务的时候都会有自己的服务管理后台,可以在后台注册服务。

注册方式:

  • 表单提交,单个注册
  • 使用JSON批量注册

服务发现

服务发现一般是系统中的消费者处理,这个选项更多了,说一个例子。

如果采用的是Tomcat,在启动的时候可以配置ServletContextListener监听类,从服务注册中心拉取配置的远程服务,并且先缓存在本地。同时再注册中心的节点上添加监听器,当数据改变的时候,再次从节点获取数据更新本地的缓存。

数据一般存储在ConcurrentHashMap里面

	/**
	 * 注册中心标准实现类,初始化
	 */
	private static IRegisterCenter registerCenter = new RegisterCenterStandard();
	/**
	 * 注册中心缓存对象
	 */
	private final ConcurrentHashMap<String, String> registerCenterMap = new ConcurrentHashMap<String, String>();
	/**
	 * 存放工程名-url映射
	 */
	private final Map<String, String> projectUrlMap = new ConcurrentHashMap<String, String>();

调用远程服务的时候从拉取的配置获取值。远程服务的key有自己的规则,不同公司都可以定义自己的风格

key: 项目名.模块名.系统名.方法名

遵守一定的规则才行,有的时候系统可能在服务上又做了一层集群的话,可能还要处理一下集群之间的调度策略。

相关的开发,主要是规范比较重要。

最后

剩下的再做一下服务注册中心的监控。实时的连接数,收发包数,延迟,请求量,节点数,出现异常进行报警等。

这里主要对远程服务做了基本的介绍,分布式系统的构建都是一步步完成的,适合自己业务的才是好的。

参考

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
1.1萬
獲贊與收藏
1545

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消