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

安康网站开发公司贵州营销型网站

安康网站开发公司,贵州营销型网站,wordpress整合ldap,网站建设方案报价表原创作者#xff1a;田超凡#xff08;程序员田宝宝#xff09; 版权所有#xff0c;引用请注明原作者#xff0c;严禁复制转载 Part 1 理论部分 1 网关类别有哪些#xff1f; 常见的网关类别有三种#xff1a;开放API#xff08;Open API#xff09;网关、微服务…原创作者田超凡程序员田宝宝 版权所有引用请注明原作者严禁复制转载 Part 1 理论部分 1 网关类别有哪些 常见的网关类别有三种开放APIOpen API网关、微服务网关、API服务管理平台。 1 开放APIOpen API网关 在开放APIOpen API中客户需要将自身的数据、能力等作为开放平台对外开放通常会以REST的方式对外提供比如阿里云的开放平台、腾讯的QQ开放平台、微信开放平台等等Open API开放平台必然会涉及到用户的应用接入、API权限管理、调用次数管理等所以必然会有一个统一的入口来进行管理这正是开放APIOpen API网关可以发挥作用的时候。 2 微服务网关 微服务的概念最早是在2012年提出的在SpringCloud的大力推广下微服务在2014年后才逐渐得到了大力发展在微服务架构中有一个组件必不可少那就是微服务网关微服务网关实现了负载均衡、缓存、路由、访问控制、服务代理、监控、日志等功能API网关在微服务架构中正是以微服务网关的身份存在。 3 API服务管理平台 上述的微服务架构对一些企业来说可能存在实施上的困难因为企业有很多遗留系统如果要将这些遗留系统全部抽取改造成微服务架构的话会导致改动量大大增加且需要部署的服务器数量也会增多这对企业来说成本太高但是不同的系统之间存在大量的API服务相互调用所以需要对系统间的服务调用进行管理可以清晰地看到各系统之间的调用关系对系统间的调用行为进行监控API网关可以解决这些问题如果没有大规模地实施微服务架构那么对企业来说微服务网关就是企业的API服务管理平台。 2 网关作用是什么 网关的作用是可以实现负载均衡、路由转发、日志、权限控制、监控等功能。 3 网关和拦截器、过滤器的区别是什么 网关是拦截所有服务器的请求进行控制 拦截器是拦截某单个服务器的请求进行控制 过滤器是拦截某单个服务器的请求进行过滤只放行符合过滤条件的请求。 4 如何设计微服务网关 设计微服务网关包括开放API接口和内网API接口。 开放API接口 对于Open API使用的API网关来说一般合作伙伴要以应用的形式接入到Open API开放平台然后需要到Open API开放平台申请应用因此在Open API网关之外需要有一个面向合作伙伴的使用平台这就要求Open API网关需要提供API给这个用户平台进行访问。 当然如果是在简单的场景下可能不需要提供一个面向合作伙伴的门户只需要让公司的运营人员直接添加合作伙伴应用的应用ID/密钥等这种情况下也就不需要合作伙伴门户子系统。 内网API接口 对于内网的API网关来说起到的作用上可以认为是微服务网关也可以认为是内网的API服务管理平台当企业将所有的应用都使用微服务架构管理起来的时候API网关就起到了微服务网关的作用当企业只是将系统和系统之间的调用使用REST API的方式进行访问时使用API网关对调用进行管理API网关就起到了API服务管理平台的作用。 对于公司内部公网应用如APP、公司网站如果管理的比较细致在架构上可以使用单独的API网关来处理这部分内部公网应用如果想要使用比较简单的方式实现可以使用面向合作伙伴的API网关如果使用独立的API网关有以下几种好处 1 面向合作伙伴和面向公司主体业务的优先级不一样不同的API网关可以实现业务影响的隔离。 2 内网API使用的管理流程和面向合作伙伴的管理流程可能不一样。 3 内网API在功能扩展等方面的需求量一般会大于Open API在功能扩展等方面的需求量。 基于以上的分析如果公司有能力还是建议分开使用合作伙伴Open API网关和内部公网应用网关。 5 Nginx和Zuul的区别是什么 Nginx是采用服务器负载均衡进行转发 Zuul依赖于Ribbon和Eureka实现本地负载均衡转发 Zuul默认已经整合并开启了Ribbon实现的客户端负载均衡的功能 Nginx功能比Zuul功能更加强大能够整合其他的语言比如Lua脚本实现强大的功能同时Nginx还可以更好地抗高并发Zuul网关适用于一般请求过滤和拦截等。 6 动态网关实现思路是什么 传统方式是将路由规则配置到配置文件中如果路由规则发生了改变需要重启服务器可以整合SpringCloud Config分布式配置中心实现动态路由规则网关。 Part 2 实践部分 Zuul网关 zuul是spring cloud的一个推荐组件https://github.com/Netflix/zuul 使用Zuul实现反向代理 环境搭建 Maven依赖信息 parent            groupIdorg.springframework.boot/groupId            artifactIdspring-boot-starter-parent/artifactId            version2.0.1.RELEASE/version      /parent      !-- 管理依赖 --      dependencyManagement            dependencies                 dependency                      groupIdorg.springframework.cloud/groupId                      artifactIdspring-cloud-dependencies/artifactId                      versionFinchley.M7/version                      typepom/type                      scopeimport/scope                 /dependency            /dependencies      /dependencyManagement      dependencies            dependency                 groupIdorg.springframework.cloud/groupId                 artifactIdspring-cloud-starter-netflix-zuul/artifactId            /dependency            !-- SpringBoot整合eureka客户端 --            dependency                 groupIdorg.springframework.cloud/groupId                 artifactIdspring-cloud-starter-netflix-eureka-client/artifactId            /dependency      /dependencies      !-- 注意 这里必须要添加 否者各种依赖有问题 --      repositories            repository                 idspring-milestones/id                 nameSpring Milestones/name                 urlhttps://repo.spring.io/libs-milestone/url                 snapshots                      enabledfalse/enabled                 /snapshots            /repository      /repositories application.yml ###注册 中心 eureka:   client:     serviceUrl:       defaultZone: http://localhost:8100/eureka/ server:   port: 80 ###网关名称 spring:   application:     name: service-zuul ### 配置网关反向代理    zuul:   routes:     api-a:      ### 以 /api-member/访问转发到用户服务       path: /api-member/**       serviceId: app-ittcf-member     api-b:         ### 以 /api-order/访问转发到订单服务       path: /api-order/**       serviceId: app-ittcf-order 使用Zuul整合Ribbon Zuul 默认开启了 Ribbon本地负载均衡功能。 使用Zuul过滤器 案例使用过滤器验证客户端是否有登陆。 Component public class TokenFilter extends ZuulFilter {     public Object run() throws ZuulException {         // 获取上下文         RequestContext currentContext RequestContext.getCurrentContext();         HttpServletRequest request currentContext.getRequest();         String userToken request.getParameter(userToken);         if (StringUtils.isEmpty(userToken)) {              currentContext.setSendZuulResponse(false);              currentContext.setResponseStatusCode(401);              currentContext.setResponseBody(userToken is null);              return null;         }         // 否则正常执行业务逻辑.....         return null;     }     // 判断过滤器是否生效     public boolean shouldFilter() {         return true;     }     // 过滤器的执行顺序。当请求在一个阶段的时候存在多个多个过滤器时需要根据该方法的返回值依次执行     public int filterOrder() {         return 0;     }     // 过滤器类型 pre 表示在 请求之前进行拦截     public String filterType() {         return pre;     } } 动态网关 传统方式将路由规则配置在配置文件中如果路由规则发生了改变需要重启服务器。这时候我们可以整合SpringCloud Config分布式配置中心实现动态路由规则。 在git上创建一个文件service-zuul-dev.yml ### 配置网关反向代理    zuul:   routes:     api-a:      ### 以 /api-member/访问转发到用户服务       path: /api-member/**       serviceId: app-ittcf-member     api-b:         ### 以 /api-order/访问转发到订单服务       path: /api-order/**       serviceId: app-ittcf-order Maven依赖信息 新增监控中心依赖信息 !-- actuator监控中心 --            dependency                 groupIdorg.springframework.boot/groupId                 artifactIdspring-boot-starter-actuator/artifactId            /dependency            !-- springcloud config 2.0 --            dependency                 groupIdorg.springframework.cloud/groupId                 artifactIdspring-cloud-config-client/artifactId            /dependency application.yml ###服务注册地址 eureka:   client:     serviceUrl:       defaultZone: http://localhost:8100/eureka/ ###api网关端口号      server:   port: 80 ###网关名称  spring:   application:     name: service-zuul   cloud:     config:     ####读取后缀       profile: dev       ####读取config-server注册地址       discovery:         service-id: config-server         enabled: true    ###默认服务读取eureka注册服务列表 默认间隔30秒 ###开启所有监控中心接口 management:   endpoints:     web:       exposure:         include: * 项目启动 // zuul配置能够使用config实现实时更新       RefreshScope       ConfigurationProperties(zuul)       public ZuulProperties zuulProperties() {             return new ZuulProperties();       } 手动刷新接口 http://127.0.0.1/actuator/refresh Zuul网关集群 Zuul网关集群使用Nginx反向代理即可保证每台网关配置数据相同。 nginx.conf配置参考 upstream  backServer{           server 127.0.0.1:81;           server 127.0.0.1:82;       }     server {         listen       80;         server_name  wg.ittcf.com;        location / {                 ### 指定上游服务器负载均衡服务器                 proxy_pass http://backServer/;             index  index.html index.htm;         }     } 本文部分素材转载自蚂蚁课堂
http://www.hkea.cn/news/14292770/

相关文章:

  • wordpress网站备份还原建立什么样的网站好
  • 如意宝魔方建站h5案例分享平台
  • 个人商城网站源码下载android开发教程网站
  • 建设网站的不足怎样把网站做的更好
  • 公司做网站最低需用多少钱沧州网站建设公司翼马
  • 国家免费培训网站logo制作免费软件下载
  • 商用网站开发计划书一个新手如何做网站
  • 电商网站建设与运营方向一级做受网站
  • 做网站注册会员加入实名认证功能wordpress多域名访问
  • 摄影师作品网站网站设计理念怎么写
  • 宁波哪里做网站的什么是wap网站
  • 自己做的网站网页错位做网站都有跳转链接
  • 怎样建设自己的视频网站首页微信公众号怎么做文章排版
  • 深圳盐田住房和建设局网站wordpress显示图片慢
  • 个人网站备案幕布站长统计app网站
  • js 网站测速国内十大软件培训机构
  • 如何分析一个网站的用户哪些网站自己做宣传
  • 桐乡 网站建设青海公路建设市场信用信息服务网站
  • 有什么好的建站公司推广链接点击器网页
  • 公司网站可以做服务器吗建站之星网站登录
  • 搜狐快站怎么样thinkphp5做网站
  • 免费数据网站做网站需要下什么软件
  • 建设地方性综合门户网站大致多少钱?要多大的流量?中山精品网站建设流程
  • 设计网站建设书南昌如何用python制作网页
  • 徐州做网站门户网站建设工作总结
  • 西安做网站服务北京网站建设推
  • 企业网站建设效益分析柯桥网站建设
  • 做的网站如何全屏代码广东网站建设商家
  • 现代建设公司网站江苏建设厅网站电话多少
  • wordpress相关网站做招聘网站如何宣传