Category - 微服务(IT)

微服务 MicroService    2020-03-01 12:32:00    376

事务处理一直以来都是微服务比较痛苦的点,这源于微服务的设计思想:尽量将微服务的业务分离(完全分离比较理想化)。然而实际的使用中,多个业务一般都是有着对应的关系的。

炒个栗子

目前我们有两个业务,一个是customer,一个是order,会存在如下两张表:

customer表

字段名 字段类型
id varchar
name varchar
... ...

order表

字段名 字段类型
id varchar
desc varchar
customer_id varchar
... ...

业务场景

先来提几个问题

还按照之前写文章的思路,先问自己问题,然后根据问题来去做解决方案

swagger 微服务 MicroService    2017-07-19 22:00:07    954

简介,基于Swagger UI其实是纯static的web程序,仅仅在页面加载的时候,调用http连接,获取yaml字符串或者json字符串,这里我将yaml文件和放到静态项目中,并使用tomcat启动,下面来看看怎么做的


1、下载Swagger UI的代码:
    https://github.com/swagger-api/swagger-ui

2、从下载的代码中提取dist文件夹

3、修改dist文件夹下的index.html文件,修改代码
  <script type="text/javascript">
    $(function () {
      var url = window.location.search.match(/url=([^&]+)/);
      if (url && url.length > 1) {
        url = decodeURIComponent(url[1]);
      } else {
        url = "http://petstore.swagger.io/v2/swagger.json";
      }

  <script type="text/javascript">
    var resourceName=window.location.href.split('?')[1];
    $(function () {
      var url = window.location.search.match(/url=([^&]+)/);
      if (url && url.length > 1) {
        url = decodeURIComponent(url[1]);
      } else {
        //url = "http://petstore.swagger.io/v2/swagger.json";
        url="/yaml/"+resourceName+".yaml";
      }
4、找个tomcat,将加入了跨域配置的Java Web项目添加到webapps
    参考文章:http://blog.csdn.net/gsying1474/article/details/49664883
5、在yaml项目中,添加所有的yaml文件到yaml项目根目录下,将dis
TYK GateWay MicroService 微服务    2017-07-19 21:56:25    990

 

TYK中设置流量控制和访问控制有两种方式,

1、在生成key的时候设置访问权限


配置如下图:




然后点击create即可,然后访问,每小时只能访问两次

2、使用policies设置(实质是设置policie模板,然后在生成key的时候,使用模板覆盖自定义设置)


这里我对policie的设置如下


在生成key的过程中,选择Policy,会自动覆盖下面的自定义配置,下面的操作就和上面的一样了



 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn


TYK GateWay MicroService 微服务    2017-07-19 21:53:40    1040

 

由于OAuth2认证方式流程暂时尚未跑通过,先以TYK中标准的认证方式"Auth Token"来做简单介绍

1、配置API网关代理认证方式



2、选择认证方式为"Auth Token","Auth Key Header Name"值是可以自定义的,这里我们使用"Authorization",然后到页面最上边,点击“update”进行保存,此过程不需要重启服务即可生效


3、获取Token,如下图,点击"Add key",添加key(在下一个页面选择key使用的API)

其中,"Rate Limiting"中的"Expires"选择key的有效期限,为了简便测试,这里我选择为"Never Expires"(永不过期)。

 

"Access Rights"中添加"access role",这里我选择我添加的API项目"myTest",然后点击add,然后点击最下方的"Create"



然后页面中如下图所示处,会显示新生成的token值,将其Copy出来,以便后续测试使用,这里生成的值为"56d58ee8e1382308e7000001eb4c2ee1789a47506d4dca2b32141a92"


4、使用restClient、curl等方式进行测试认证
4.1、如下图,使用Firefox的插件restClient进行测试,注意要添加header,key为"Authorization",value为上一步奏记录下的Token值


4.2、使用curl方式进行测试
命令如下:
curl --header "Authorization: 56d58ee8e1382308e7000001eb4c2ee1789a47506d4dca2b32141a92" http://192.168.10.147:8080/mytest/helloworld

结果如图所示:




 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

TYK SSL 微服务 MicroService    2017-07-19 21:47:13    884
一、nginx+tyk(tyk仍然使用http,nginx使用https+proxy_pass转发
    测试可行

二、tyk配置文件配置使用https
参考链接:https://github.com/TykTechnologies/tyk/issues/181
1、修改配置文件:/opt/tyk-gateway/tyk.conf
    修改端口为443
    修改hostname为:mydomain.com
    添加配置:
"http_server_options": {
    "use_ssl": true,
    "server_name": "*.mydomain.com",
    "min_version": 2,
    "certificates": [
      {
        "domain_name": "*.mydomain.com",
        "cert_file": "/opt/tyk-gateway/ssl/mydomain.crt",
        "key_file": "/opt/tyk-gateway/ssl/mydomain.key"
      }
    ]
  }

2、修改DashBoard的配置文件:/opt/tyk-dashboard/tyk_analytics.conf

    修改tyk_api_config下的Host为https://mydomain.com

    修改tyk_api_config下的Port为:443


    
然后,重启下tyk的所有服务即可


 

by 刘迎光@萤火虫工作室 
OpenBI交流群:495266201 
MicroService 微服务交流群:217722918 
mail: liuyg#liuyingguang.cn 
博主首页(==防止爬虫==):http://blog.liuyingguang.cn

1/4