什么是服务治理?
那就谈谈为什么要服务治理,是哪方面的需要才出现这个操作的。当我们服务于服务之间通讯调用的时候,我们前期的话就是简单粗暴的用httpclient去请求,没经过第三方的组件管理,然后访问路径写死(据说有些公司的服务访问路径是写在数据库上的,这样每次调用其它服务的时候就要访问一次数据库,对于程序的效率是会打折扣的),这样如果我们有一个服务更换了路径,那岂不是所有的服务都需要更换该服务的访问路径。维护的成本很高。
就是因为出现了这些问题,所以引入了服务治理这个概念,同时衍生了这类的实现组件,也就是注册中心。典型的代表:zookeeper,Eureka(听说这个小家伙2.0就要闭源了),Consul。服务治理也引入了 服务调用、负载均衡、容错等功能。
简单的总结一句:把服务看成一个地方。当我们服务调用的时候,就是从一个地方到另一个地方,这时候我们需要某德地图导航才能到达,当我们去的路程有一段路可能修路,无法通过的时候,某德的导航就会帮我们规划另一条路线。这里的导航就是注册中心,会一定的时间就会刷新一下路况,就好像我们注册中心(erueka为例)每隔30秒就会刷新一下服务的地址。
服务注册与发现
在服务注册与发现中,有一个注册中心,当服务器启动的时候,会把当前自己服务器的信息 比如 服务地址通讯地址等以别名方式注册到注册中心上。
另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址,让后在实现本地rpc调用远程。