当前位置: 首页 > news >正文

flash网站模版网站开发工程师好不好

flash网站模版,网站开发工程师好不好,wordpress 做管理系统,长沙网络工程学院文章目录概念基于ServiceDiscovery实现服务自动注册和发现Service:服务基本信息InstanceDetails:封装实例用过来保存到zk中ServiceProvider#xff1a;服务提供者ServiceConsumer#xff1a;服务消费者运行基于ServiceDiscovery、ServiceCache实现服务自动注册和发现Registry… 文章目录概念基于ServiceDiscovery实现服务自动注册和发现Service:服务基本信息InstanceDetails:封装实例用过来保存到zk中ServiceProvider服务提供者ServiceConsumer服务消费者运行基于ServiceDiscovery、ServiceCache实现服务自动注册和发现Registry服务注册Registry接口ZookeeperRegistry基于zk 实现服务注册发现ServerInfo注册信息ServiceProviderByCache服务提供者ServiceComsumerByCache服务发现者概念 学习文章https://blog.csdn.net/qq_34021712/article/details/82887942 基于ServiceDiscovery实现服务自动注册和发现 Service:服务基本信息 package com.demo.rpc.curator;import java.util.List;/*** author: weijie* Date: 2020/9/27 16:32* Description: Service:方法、方法描述、方法参数*/ public class Service {private String methodName;private String desc;private ListString params;public String getMethodName() {return methodName;}public void setMethodName(String methodName) {this.methodName methodName;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc desc;}public ListString getParams() {return params;}public void setParams(ListString params) {this.params params;} } InstanceDetails:封装实例用过来保存到zk中 package com.demo.rpc.curator;import java.util.HashMap; import java.util.Map;public class InstanceDetails {//zk根节点路径public static final String ROOT_PATH /service;//该服务拥有哪些方法public MapString, Service services new HashMap();//服务描述private String serviceDesc;public InstanceDetails() {}public InstanceDetails(String serviceDesc, MapString, Service services) {this.services services;this.serviceDesc serviceDesc;}public static String getRootPath() {return ROOT_PATH;}public MapString, Service getServices() {return services;}public void setServices(MapString, Service services) {this.services services;}public String getServiceDesc() {return serviceDesc;}public void setServiceDesc(String serviceDesc) {this.serviceDesc serviceDesc;} } ServiceProvider服务提供者 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.*; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.Map;public class ServiceProvider {public static void main(String[] args) throws Exception {CuratorFramework client CuratorFrameworkFactory.newClient(127.0.0.1:2181,2000,2000, new ExponentialBackoffRetry(1000, 3));client.start();client.blockUntilConnected();//服务构造器ServiceInstanceBuilderInstanceDetails serviceInstanceBuilder ServiceInstance.builder();//该服务中所有接口MapString, Service services new HashMap();Service addOrderService new Service();addOrderService.setDesc(添加订单);addOrderService.setMethodName(addOrder);addOrderService.setParams(Arrays.asList(uid, createTime, sid, status));services.put(addOrder, addOrderService);//添加删除订单服务接口Service delOrderService new Service();delOrderService.setDesc(删除订单);delOrderService.setMethodName(delOrder);delOrderService.setParams(Arrays.asList(sid));services.put(delOrder, delOrderService);InstanceDetails payload new InstanceDetails(订单服务, services);//将服务添加到ServiceInstanceServiceInstanceInstanceDetails orderService serviceInstanceBuilder.address(127.0.0.1).port(8080).name(OrderService).payload(payload).uriSpec(new UriSpec({scheme}://{address}:{port})).build();//构建ServiceDiscovery用来做服务发现ServiceDiscoveryInstanceDetails serviceDiscovery ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).serializer(new JsonInstanceSerializerInstanceDetails(InstanceDetails.class)).basePath(InstanceDetails.ROOT_PATH).build();//服务注册serviceDiscovery.registerService(orderService);serviceDiscovery.start();System.out.println(服务注册成功);//创建钩子方法正常关闭Runtime.getRuntime().addShutdownHook(new Thread(() - {try {serviceDiscovery.close();client.close();} catch (IOException e) {e.printStackTrace();}System.out.println(shutdown hook...);}));//保持服务运行状态ServiceProvider serviceProvider new ServiceProvider();synchronized (serviceProvider){serviceProvider.wait();}}} ServiceConsumer服务消费者 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.ServiceDiscoveryBuilder; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit;public class ServiceConsumer {public static void main(String[] args) throws Exception {CuratorFramework client CuratorFrameworkFactory.newClient(127.0.0.1:2181, new ExponentialBackoffRetry(1000, 3));client.start();client.blockUntilConnected();//构建ServiceDiscovery用来做服务发现ServiceDiscoveryInstanceDetails serviceDiscovery ServiceDiscoveryBuilder.builder(InstanceDetails.class).client(client).basePath(InstanceDetails.ROOT_PATH).serializer(new JsonInstanceSerializerInstanceDetails(InstanceDetails.class)).build();serviceDiscovery.start();//模拟请求调用服务while (true) {CollectionServiceInstanceInstanceDetails orderServices serviceDiscovery.queryForInstances(OrderService);if (orderServices.size() 0) {System.out.println(当前没有发现服务);TimeUnit.SECONDS.sleep(10);continue;}for (ServiceInstanceInstanceDetails service : orderServices) {//获取请求的scheme 例如http://127.0.0.1:8080String uriSpec service.buildUriSpec();//获取服务的其他信息InstanceDetails payload service.getPayload();//服务描述String serviceDesc payload.getServiceDesc();//获取该服务下的所有接口MapString, Service allService payload.getServices();SetMap.EntryString, Service entries allService.entrySet();for (Map.EntryString, Service entry : entries) {System.out.println(serviceDesc uriSpec / service.getName() / entry.getKey() 该方法需要的参数为 entry.getValue().getParams().toString());}}System.out.println(---------------------);Thread.sleep(5 * 1000);}}} 运行 基于ServiceDiscovery、ServiceCache实现服务自动注册和发现 Registry服务注册Registry接口 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;import java.util.List;public interface RegistryT {void registerService(ServiceInstanceT service) throws Exception;void unRegisterService(ServiceInstanceT service) throws Exception;ListServiceInstanceT queryForInstances(String name) throws Exception;} ZookeeperRegistry基于zk 实现服务注册发现 package com.demo.rpc.curator;import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.ServiceCache; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.ServiceDiscoveryBuilder; import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.details.InstanceSerializer; import org.apache.curator.x.discovery.details.JsonInstanceSerializer;import java.util.List; import java.util.stream.Collectors;public class ZookeeperRegistryT implements Registry{private InstanceSerializer serializer new JsonInstanceSerializer(ServerInfo.class);private ServiceDiscoveryT serviceDiscovery;private ServiceCacheT serviceCache;private String ROOT /dubbo-demo;private String serviceName demoService;private String host;public ZookeeperRegistry(String host) {this.host host;}public void start() throws Exception{CuratorFramework client CuratorFrameworkFactory.newClient(this.host, new ExponentialBackoffRetry(1000, 5));client.start();serviceDiscovery ServiceDiscoveryBuilder.builder(ServerInfo.class).client(client).basePath(ROOT).serializer(serializer).build();serviceDiscovery.start();//监听zk节点信息变化方便后续的读取serviceCache serviceDiscovery.serviceCacheBuilder()//多个serviceName如何监听??.name(serviceName).build();serviceDiscovery.start();serviceCache.start();}Overridepublic void registerService(ServiceInstance service) throws Exception {serviceDiscovery.registerService(service);}Overridepublic void unRegisterService(ServiceInstance service) throws Exception {serviceDiscovery.unregisterService(service);}/*** param name* return 根据name查询缓存数据* throws Exception*/Overridepublic ListServiceInstance queryForInstances(String name) throws Exception {return serviceCache.getInstances().stream().filter(s - s.getName().equals(name)).collect(Collectors.toList());} } ServerInfo注册信息 package com.demo.rpc.curator;import java.io.Serializable;public class ServerInfo implements Serializable {private String host;private int port;public ServerInfo() {}public ServerInfo(String host, int port) {this.host host;this.port port;}public String getHost() {return host;}public void setHost(String host) {this.host host;}public int getPort() {return port;}public void setPort(int port) {this.port port;}Overridepublic String toString() {return ServerInfo{ host host \ , port port };} }ServiceProviderByCache服务提供者 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;public class ServiceProviderByCache {public static void main(String[] args) throws Exception {ZookeeperRegistryServerInfo zookeeperRegistry new ZookeeperRegistry(127.0.0.1:2181);zookeeperRegistry.start();ServerInfo serverInfo new ServerInfo(127.0.0.1, 8080);zookeeperRegistry.registerService(ServiceInstance.builder().name(demoService).payload(serverInfo).build());synchronized (ServiceProviderByCache.class){ServiceProviderByCache.class.wait();}}} ServiceComsumerByCache服务发现者 package com.demo.rpc.curator;import org.apache.curator.x.discovery.ServiceInstance;import java.util.List;public class ServiceComsumerByCache {public static void main(String[] args) throws Exception {ZookeeperRegistryServerInfo zookeeperRegistry new ZookeeperRegistry(127.0.0.1:2181);zookeeperRegistry.start();// while (true){ListServiceInstance serviceInstances zookeeperRegistry.queryForInstances(demoService);for (ServiceInstance serviceInstance : serviceInstances){System.out.println(serviceInstance.getPayload().toString());} // }}}
http://wiki.neutronadmin.com/news/102339/

相关文章:

  • 怎样建立自己的销售网站公司官网怎么做
  • 怎么做一个局域网站做网站技术人员
  • 可以推广的网站有哪些wordpress站点浏览
  • 搬瓦工如何搭建做网站做金融在那个网站上找工作
  • vi设计与网站建设招标文件网站建设从零开始
  • 网站登录验证码不正确wordpress黑色主题下载
  • 南山区住房与建设局官方网站哪家企业建设网站好
  • 北京好一点的微网站开发公司网站色彩设计
  • 北京外贸网站制作公司网站程序的构成
  • 保定网络公司建设网站网站服务器租用注意事项
  • 茶叶网站策划方案WordPress设置评论通过
  • 网站设计背景图片怎么做的wordpress网站如何迁移
  • 服装网站建设发展状况国家补贴软件网站开发政策
  • 自己买域名可以做网站吗网络营销推广公司哪家好
  • 个人网站免费建站北京著名网站设计公司
  • 网站卡密代理怎么做wordpress增加浏览量
  • 平面排版网站飞飞cms悠悠电影网站
  • 扬之云公司网站建设简述制作网站的主要流程
  • 网站标题tdk北京王府井
  • 旅游网站怎么建设正规的男科医院排名
  • 网站策划师招聘深圳市腾讯天游科技有限公司
  • 欧米伽官方网站手表价格太原做网站费用
  • 莆田市秀屿区建设局网站网站开发要先买服务器吗
  • 网站建设打广告报名小程序怎么制作
  • 怀来县网站建设网站空间怎么选
  • 0791网站建设网站内容及实现方式
  • 手机网站做指向tiktok无货源跨境电商怎么做
  • 网站建设新的技术方案网站建设联雅
  • 网站没有百度权重宝安中心医院怎么样
  • 南京网站推广营销公司哪家好wordpress文章不显示