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

医院构建网络平台你怎么准备黑帽seo技术有哪些

医院构建网络平台你怎么准备,黑帽seo技术有哪些,简单网站设计草图,海豚一键做淘宝网站一、提供者与消费者 服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务) 服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口) 例如前面的案例中,order-service微服务是服…

一、提供者与消费者

服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)

服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)

例如前面的案例中,order-service微服务是服务提供者,user-service微服务是服务消费者

思考:

如果服务A调用服务B,服务B调用服务C,那么服务B是什么角色 ?

一个服务既可以是提供者,也可以是消费者。所以服务B相对于服务A而言,服务B是提供者。服务B相对于服务C而言,服务B是消费者

二、Eureka原理分析

以上面的案例为例,order-service微服务和user-service微服务之间,服务调用出现的问题如下:

  • order-service去向user-service发送请求,使用的是硬编码,也就是 "http://localhost:8081/user/"+order.getUserId();
  • 硬编码每次修改需要重新打包
  • 如果user-service微服务(提供者)部署成了多实例,形成集群来应对并发,那么order-service微服务(消费者)硬编码到底是写哪个实例的地址
  • 即使你知道这些实例的地址,那么如何挑选其中一台实例来使用呢

Eureka原理

  • Eureka架构中,微服务角色有两类,一个是EurekaServer叫做服务端(注册中心)。作用是记录服务信息,心跳监控;一个是EurekaClient叫做客户端,也就是服务的提供者/消费者
  • 可以把注册中心理解为Key,我们的微服务项目理解为Value,Eureka理解为字典
  • 当微服务项目(例如user-service)启动时,会主动把自己(user-service微服务)的信息注册给注册中心
  • 注册到注册中心的微服务会每隔30秒,向注册中心发起心跳,证明自己还在健康运行
  • 多个微服务的话,注册中心就会有多个Value,一个Value就是一个微服务的信息,这些Value会放到一个列表里面
  • 当其它微服务(例如order-service)要使用某个微服务(例如user-service)时,这个微服务(order-service就会向注册中心去拉取对应微服务(user-service)的信息
  • 当注册中心有多个提供者(微服务),那么消费者是通过负载均衡算法,在注册中心的服务列表中挑选一个

三、搭建Eureka

步骤有三步:

1、搭建注册中心(EurekaServer)。搭建EurekaServer注册中心,也就是创建一个项目(在cloud-demo项目内部创建eureka-server项目),把这个项目做成注册中心

2、服务注册。将user-service(前面导入的服务拆分Demo)、order-service(前面导入的服务拆分Demo)都注册到eureka

3、服务发现。在order-service中完成服务拉取,然后通过负载均衡挑选一个服务,实现远程调用

1. 搭建EurekaServer注册中心

第一步: 创建一个新的项目,作为独立的微服务,用于搭建Eureka,也就是在cloud-demo工程里面新建eureka-server微服务项目

第二步: 在eureka-server微服务的pom.xml添加如下,无需配置版本,因为父工程已经配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>cloud-demo</artifactId><groupId>cn.itcast.demo</groupId><version>1.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>eureka-server</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><!--添加注册中心的依赖坐标--><dependencies>
<!--        eureka服务端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies></project>

第三步: 在eureka-server微服务的src/main/java目录新建cn.itcast.eureka.EurekaApplication类,写入如下,注意加上@EnableEurekaServer注解,启动Eureka

package cn.itcast.eureka;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {public static void main(String[] args) {SpringApplication.run(EurekaApplication.class,args);}
}

第四步: 在eureka-server微服务的src/main/resources目录新建File,名字为application.yml,写入如下

server:# 服务端口port: 8686spring:application:# eureka的服务名称,因为eureka自己也是一个服务,也需要注册服务name: eurekaservereureka:client:service-url:# eureka的服务地址。如果有多个的话,逗号隔开defaultZone: http://localhost:8686/eureka

第五步: 启动eureka-server微服务。也就是运行EurekaApplication类,浏览器访问 http://localhost:8686 

2. 服务注册

这里我们实现把user-service和order-service注册到Eureka,只演示user-service

第一步:在user-service项目引入spring-cloud-start-netfix-eureka-client依赖,表示客户端

<!--引入Eureka客户端依赖-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

 第二步: 在user-service微服务的application.yml添加如下

spring:# Eureka相关配置application:# user的服务名称。也就是这个user-service注册到Eureka之后,这个user-service会叫什么名字name: userserviceeureka:client:service-url:# eureka的服务地址。如果有多个的话,逗号隔开。也就是把当前这个user-service微服务注册给哪个EurekadefaultZone: http://localhost:8686/eureka

 添加完后,user-service的application.yml文件如下,注意application是spring下的配置,要写在spring的下面

server:port: 8081
spring:datasource:url: jdbc:mysql://localhost:3306/cloud_user?useSSL=falseusername: rootpassword:driver-class-name: com.mysql.jdbc.Driver# Eureka相关配置application:# user的服务名称。也就是这个user-service注册到Eureka之后,这个user-service会叫什么名字name: UserService
mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: true
logging:level:cn.itcast: debugpattern:dateformat: MM-dd HH:mm:ss:SSSeureka:client:service-url:# eureka的服务地址。如果有多个的话,逗号隔开。也就是把当前这个user-service微服务注册给哪个EurekadefaultZone: http://localhost:8686/eureka    

同理,order-service也做相同操作,只是服务名修改一下 

第三步:

启动user-service。也就是运行UserApplication类,浏览器访问 http://localhost:8686,就可以看到user-service已经添加到Eureka里面

启动order-service。也就是运行OrderApplication类,浏览器访问 http://localhost:8686,就可以看到order-service已经添加到Eureka里面

当运行程序出现找不到或无法加载主类,可以尝试install一下maven工程,实在不行就全部删掉重新写一遍

IDEA复制服务实例 

上面我们启动了一个UserService服务实例,那么我们想再启动一个UserService实例,向Eureka注册多个服务,实现如下

第一步:右键服务然后点击复制配置 

第二步:设置服务名称和端口

 第三步:启动服务

第四步:打开Eureka注册中心,看到UserService的服务列表中增加了一个

也就是说,UserService的服务实例可以注册多个,当消费者想要获取服务时,可以通过负载均衡策略向服务实例发起请求 

3. 服务发现

服务发现也叫服务拉取,我们需要在order-service完成服务拉取。服务拉取是基于服务名称获取服务列表,然后再对服务列表做负载均衡

首先回想一下,前面的远程调用,我们实现了在订单项目(也就是现在的order-service微服务)去查询用户项目(也就是现在的user-service微服务)的案例需求

当时是在order-service里面使用url请求ip地址的方式,去请求user-service,从而获取user-service的用户信息

那么,学习了上面的Eureka之后,并且我们已经把order-service和user-service注册到注册中心(eureka-server)了,所以就可以在order-service里面,通过 '服务发现' 去获取user-service里面的用户信息

具体操作也非常简单,也是使用url请求的方式,但请求的路径不是ip,而是服务名称

代码实现

第一步: 在order-server微服务中的src/main/java/cn.itcast.order/service/OrderService类,修改访问的url路径,用服务名代替ip、端口。修改为如下

package cn.itcast.order.service;import cn.itcast.order.mapper.OrderMapper;
import cn.itcast.order.pojo.Order;
import cn.itcast.order.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;import java.sql.PreparedStatement;@Service
public class OrderService {@Autowiredprivate OrderMapper orderMapper;@Autowiredprivate RestTemplate restTemplate;public Order queryOrderById(Long orderId) {// 1.查询订单Order order = orderMapper.findById(orderId);//2.利用RestTemplate发起http请求,查询用户//2.1 url路径String url = "http://UserService:8081/user/" + order.getUserId();//这个方法第一个参数是访问路径,第二个参数是把响应得到的Json数据封装成实体类对象User user = restTemplate.getForObject(url, User.class);//3.封装user到Orderorder.setUser(user);// 4.返回return order;}
}

第二步: 负载均衡。在order-server微服务中的OrderApplication引导类修改为如下,主要是给RestTemplate加上@LoadBalanced注解

package cn.itcast.order;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class, args);}/*** 创建RestTemplate并注入Spring容器* @return*/@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}}

第三步: 重新启动在order-server微服务的OrderApplication引导类,浏览器输入

http://localhost:8080/order/101,并向user-service微服务发送多次请求

总结:服务发现,就是将请求url中的ip地址替换成服务名称,然后根据负载均衡策略去调用服务


文章转载自:
http://ileac.mcjp.cn
http://sniveler.mcjp.cn
http://scr.mcjp.cn
http://blazon.mcjp.cn
http://amphora.mcjp.cn
http://rushee.mcjp.cn
http://skiogram.mcjp.cn
http://philanthropism.mcjp.cn
http://respect.mcjp.cn
http://noninductivity.mcjp.cn
http://carded.mcjp.cn
http://tamer.mcjp.cn
http://archeozoic.mcjp.cn
http://churchlike.mcjp.cn
http://mesosome.mcjp.cn
http://ambassadorial.mcjp.cn
http://powerword.mcjp.cn
http://tetrahedrane.mcjp.cn
http://rhapsode.mcjp.cn
http://gnathion.mcjp.cn
http://unwithered.mcjp.cn
http://agueweed.mcjp.cn
http://subulate.mcjp.cn
http://trilaminar.mcjp.cn
http://hosel.mcjp.cn
http://farsighted.mcjp.cn
http://fossilist.mcjp.cn
http://airsick.mcjp.cn
http://pentaerythritol.mcjp.cn
http://oxotremorine.mcjp.cn
http://resemble.mcjp.cn
http://talmessite.mcjp.cn
http://dastardliness.mcjp.cn
http://aboulia.mcjp.cn
http://gayly.mcjp.cn
http://passer.mcjp.cn
http://replevy.mcjp.cn
http://trouser.mcjp.cn
http://nimblewit.mcjp.cn
http://duralumin.mcjp.cn
http://submetacentric.mcjp.cn
http://foxery.mcjp.cn
http://regularization.mcjp.cn
http://filipin.mcjp.cn
http://otter.mcjp.cn
http://vehement.mcjp.cn
http://delator.mcjp.cn
http://periphrastic.mcjp.cn
http://vitiate.mcjp.cn
http://doolie.mcjp.cn
http://nonprovided.mcjp.cn
http://crapehanger.mcjp.cn
http://serpentis.mcjp.cn
http://odontology.mcjp.cn
http://honeybunch.mcjp.cn
http://dank.mcjp.cn
http://hysterotely.mcjp.cn
http://cloot.mcjp.cn
http://zabrze.mcjp.cn
http://diacetylmorphine.mcjp.cn
http://sacrum.mcjp.cn
http://masterman.mcjp.cn
http://bioelectrical.mcjp.cn
http://petitor.mcjp.cn
http://megatanker.mcjp.cn
http://firebreak.mcjp.cn
http://carless.mcjp.cn
http://stockily.mcjp.cn
http://headlight.mcjp.cn
http://extrorse.mcjp.cn
http://aspic.mcjp.cn
http://unstinted.mcjp.cn
http://submissiveness.mcjp.cn
http://outen.mcjp.cn
http://conmanship.mcjp.cn
http://odds.mcjp.cn
http://shooting.mcjp.cn
http://xenophobe.mcjp.cn
http://crool.mcjp.cn
http://dushanbe.mcjp.cn
http://santiago.mcjp.cn
http://nidifugous.mcjp.cn
http://hektograph.mcjp.cn
http://caddo.mcjp.cn
http://forgetfully.mcjp.cn
http://rheology.mcjp.cn
http://inimitably.mcjp.cn
http://kirkcudbrightshire.mcjp.cn
http://princedom.mcjp.cn
http://imperative.mcjp.cn
http://violoncello.mcjp.cn
http://crucifer.mcjp.cn
http://premundane.mcjp.cn
http://retrospect.mcjp.cn
http://loire.mcjp.cn
http://torii.mcjp.cn
http://puriform.mcjp.cn
http://mahlerian.mcjp.cn
http://necrophilia.mcjp.cn
http://larrigan.mcjp.cn
http://www.15wanjia.com/news/90748.html

相关文章:

  • 那里做网站比较好seo研究协会
  • 网站正在建设页面整站优化seo公司哪家好
  • 音乐网站建设规划书济南seo怎么优化
  • 网站备案网站要有内容吗推广优化师
  • wordpress 数据库大小seo自学网视频教程
  • 农业营销型网站源码百度一下你就知道百度首页
  • 医疗行业网站怎么做东莞网站seo公司哪家大
  • 武汉品牌画册设计公司怎么做网站优化
  • 网站建设差打不开网站优化网络推广seo
  • 下了网站建设扬中网站制作
  • 沈阳 网站建设深圳网站建设公司排名
  • 建设动态网站的工具地推十大推广app平台
  • 电子商务网站模板 html软文营销文案
  • 免费查企业app排行榜外贸seo
  • 电商型网站建设价格小程序拉新推广平台
  • vs2012网站开发百度客服
  • 网站开发电商网络营销企业案例
  • 郑州 网站设计做网店自己怎么去推广
  • 网站设计的毕业论文结论怎么写新闻联播俄罗斯与乌克兰
  • 网站建设 网站开发 区别百度seo关键词排名优化工具
  • java 国外网站seo优化顾问服务阿亮
  • 苏州做学校网站的百度号码认证平台官网
  • 网站建设需要学习什么上海关键词排名优化怎样
  • 惠州网站制作计划交换链接的作用
  • 网站关键词排名怎么优化培训机构需要什么资质
  • 动态网站设计简单吗免费b站推广短视频
  • 做pc端网站适配微信社群营销怎么做
  • 新手做自己的网站教程信息发布推广方法
  • 如何提高网站排名小程序制作流程
  • 郴州网站建设流程山东今日热搜