微服务网关从零搭建——(七)更改存储方式为oracle

资源准备:

下载开源项目

新建oracle表:

-- ----------------------------
-- Table structure for OcelotGlobalConfiguration
-- ----------------------------

CREATE TABLE OcelotGlobalConfiguration (
  Id NUMBER(11) NOT NULL ,
  GatewayName NVARCHAR2(200) NOT NULL ,
  RequestIdKey NVARCHAR2(100) ,
  BaseUrl NVARCHAR2(100) ,
  DownstreamScheme NVARCHAR2(50) ,
  ServiceDiscoveryProvider NVARCHAR2(300) ,
  QoSOptions NVARCHAR2(300) ,
  LoadBalancerOptions NVARCHAR2(300) ,
  HttpHandlerOptions NVARCHAR2(300) ,
  LastUpdateTime DATE ,
  AddTime DATE NOT NULL ,
  IsDefault NUMBER(4) NOT NULL 
)
;
COMMENT ON COLUMN OcelotGlobalConfiguration.Id IS '主键';
COMMENT ON COLUMN OcelotGlobalConfiguration.GatewayName IS '网关名称';
COMMENT ON COLUMN OcelotGlobalConfiguration.AddTime IS '添加时间';
COMMENT ON COLUMN OcelotGlobalConfiguration.IsDefault IS '是否默认';

-- ----------------------------
-- Records of OcelotGlobalConfiguration
-- ----------------------------
INSERT INTO OcelotGlobalConfiguration VALUES ('1', '第一个网关', 'FirstGateway', '', '', '', '', '', '', TO_DATE('1900-01-01 00:00:00.000', 'SYYYY-MM-DD HH24:MI:SS'), TO_DATE('2018-10-22 18:06:22.337', 'SYYYY-MM-DD HH24:MI:SS'), '1');
COMMIT;

-- ----------------------------
-- Table structure for OcelotReRoutes
-- ----------------------------

CREATE TABLE OcelotReRoutes (
  Id NUMBER(11) NOT NULL ,
  OcelotGlobalConfigurationId NUMBER(11) NOT NULL ,
  UpstreamPathTemplate NVARCHAR2(150) NOT NULL ,
  UpstreamHttpMethod NVARCHAR2(50) NOT NULL ,
  UpstreamHost NVARCHAR2(100) NOT NULL ,
  DownstreamScheme NVARCHAR2(50) ,
  DownstreamPathTemplate NVARCHAR2(200) ,
  DownstreamHostAndPorts NVARCHAR2(500) ,
  AuthenticationOptions NVARCHAR2(300) ,
  RequestIdKey NVARCHAR2(100) ,
  CacheOptions NVARCHAR2(200) ,
  ServiceName NVARCHAR2(100) ,
  QoSOptions NVARCHAR2(200) ,
  LoadBalancerOptions NVARCHAR2(200) ,
  Key NVARCHAR2(100) ,
  DelegatingHandlers NVARCHAR2(200) ,
  Priority NUMBER(11) ,
  Timeout NUMBER(11) ,
  IsStatus NUMBER(11) NOT NULL ,
  AddTime DATE NOT NULL 
)
;
COMMENT ON COLUMN OcelotReRoutes.Id IS '主键';
COMMENT ON COLUMN OcelotReRoutes.OcelotGlobalConfigurationId IS '全局配置ID';
COMMENT ON COLUMN OcelotReRoutes.AddTime IS '添加时间';

-- ----------------------------
-- Records of OcelotReRoutes
-- ----------------------------
INSERT INTO OcelotReRoutes VALUES ('1', '1', '/connect/token', '[ POST ]', ' ', 'http', '/connect/token', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('2', '1', '/connect/authorize', '[ POST,GET ]', ' ', 'http', '/connect/authorize', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('3', '1', '/.well-known/openid-configuration', '[ GET ]',  ' ', 'http', '/.well-known/openid-configuration', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('4', '1', '/.well-known/openid-configuration/jwks', '[  POST,GET ]', ' ', 'http', '/.well-known/openid-configuration', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('5', '1', '/connect/userinfo', '[  POST,GET ]', ' ', 'http', '/connect/userinfo', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('6', '1', '/connect/endsession', '[  POST,GET ]', ' ', 'http', '/connect/endsession', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('7', '1', '/connect/checksession', '[  POST,GET ]', ' ', 'http', '/connect/checksession', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('8', '1', '/connect/revocation', '[  POST,GET ]', ' ', 'http', '/connect/revocation', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('9', '1', '/connect/introspect', '[  POST,GET ]', ' ', 'http', '/connect/introspect', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('10', '1', '/connect/authorize/callback', '[  POST,GET ]', ' ', 'http', '/connect/authorize/callback', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('11', '1', '/connect/endsession/callback', '[  POST,GET ]', ' ', 'http', '/connect/endsession/callback', '[{Host: localhost,Port: 5003 }]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO OcelotReRoutes VALUES ('12', '1', '/ss1/{everything}', '[  POST,GET ]', ' ', 'http', '/api/{everything}', ' [{Host: localhost, Port: 1001},{Host: localhost,Port: 1002}]', '', '', '', '', '', '', '', '', '0', NULL, '1', TO_DATE('2018-10-22', 'SYYYY-MM-DD HH24:MI:SS'));
COMMIT;

-- ----------------------------
-- Primary Key structure for table OcelotGlobalConfiguration
-- ----------------------------
ALTER TABLE OcelotGlobalConfiguration ADD CONSTRAINT PK_OcelotGlobalConfiguration PRIMARY KEY (Id);

-- ----------------------------
-- Primary Key structure for table OcelotReRoutes
-- ----------------------------
ALTER TABLE OcelotReRoutes ADD CONSTRAINT PK_OcelotReRoutes PRIMARY KEY (Id);
建表以及插入默认数据语句

开始集成:

1.在网关项目中添加对Ocelot.ConfigAuthLimitCache的引用

2.在网关项目的Startup.cs 中修改ConfigureServices节点  标红部分

  services.AddOcelot(Configuration).AddAuthLimitCache(opt=> {
                opt.DbConnectionStrings = Configuration.GetSection("Setting")["ConfigDBConnction"];
            }).AddConsul();

3.在配置文件中添加数据库连接 蓝色部分

 "Setting": {
    "Port": "5001",
    "ConfigDBConnction": "Data Source=192.168.xxx.xxx/orcl;User ID=xxx;Password=xxx;"
  },

4.在Program.cs中移除对原配置文件的依赖  注释部分

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseUrls($"http://*:{StartPort}");
                //.ConfigureAppConfiguration((hostingContext, builder) =>
                //{
                //    builder.AddJsonFile("configuration.json", false, true);
                //});

至此搭建完毕 将配置文件部分的内容移动到数据库即可。

参考链接:

更改到sqlserver

 https://www.cnblogs.com/yilezhu/p/9839863.html

猜你喜欢

转载自www.cnblogs.com/nontracey/p/10670162.html