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

顺义专业建站公司网站空白页黑链

顺义专业建站公司,网站空白页黑链,大型的建设工程类考试辅导网站,wordpress后台美化插件js中使用camel框架序幕 我最近在博客上发表了使用CDI注入Kubernetes服务的信息 。 在本文中#xff0c;我将更进一步#xff0c;将Apache Camel带入图片。 因此#xff0c;我将使用Camel的CDI支持来连接我的组件和路由#xff0c;以及Fabric8的CDI扩展来自动将Kubernetes服… js中使用camel框架 序幕 我最近在博客上发表了使用CDI注入Kubernetes服务的信息 。 在本文中我将更进一步将Apache Camel带入图片。 因此我将使用Camel的CDI支持来连接我的组件和路由以及Fabric8的CDI扩展来自动将Kubernetes服务注入到我的组件中。 我将重用以前的文章中的内容如果您还没有读过请仔细阅读以构建一个独立的骆驼cdi应用程序该应用程序将通过http 向jdbc并返回的简单http公开数据库的内容再次 。 一切将在Docker中运行而编排将由Kubernetes完成。 所以第一件事。 骆驼和CDI的工作原理…。 骆驼CDI注册中心 Apache Camel正在使用注册表的概念。 它使用注册表来查找路由所需的对象。 这些查找可以按类型或名称进行。 注册表最常见的用途是在处理端点uri时骆驼将解析该方案并将按名称查找注册表以查找适当的组件。 其他情况涉及按名称将bean引用传递给端点依此类推…… 换句话说 Apache Camel可以在运行时在bean注册表上执行查找。 任何需要与Apache Camel完美配合的扩展都需要为bean提供可预测的名称。 Alias批注 对于任何给定的服务 Fabric8的CDI扩展都可以注册一个以上的bean 每种服务每种协议每个协议一个 。 因此 不可能有以服务命名的服务bean。 用户也不必记住内部使用的命名约定。 “那么Fabric8如何与依赖“按名称”查找的框架一起玩呢” Fabric8提供 Alias批注该批注允许开发人员显式指定注入服务的Bean名称。 这是一个例子 import javax.inject.Inject; import io.fabric8.annotations.Protocol; import io.fabric8.annotations.ServiceName;public class MysqlExampleWithAlias {public MysqlExampleWithAlias(Inject Alias(mysqldb) ServiceName(mysql) String serivceUrl) {System.out.println(Bean Name: mysqldb. Type: String. Value:serviceUrl);} } “这会发生什么” Fabric8 cdi扩展将收到一个事件该事件存在类型为String的注入点带有2个限定符 ServiceName的值为“ mysql ”。 值为“ mysqldb ”的别名 。 因此当它为该服务创建bean和生产者时将使用“ mysqldb”作为名称。 这就是控制Fabric8托管bean并使名称查找成为可能的原因。 使用Factory创建或配置Camel组件或端点 在上一篇文章中我介绍了一些示例说明如何使用Fabric8的 Factory批注创建jdbc连接。 现在我将为jdbc数据源创建一个工厂然后将其添加到Apache Camel Cdi Bean Registry中 。 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; import io.fabric8.annotations.Configuration; import io.fabric8.annotations.Factory; import io.fabric8.annotations.ServiceName;import javax.sql.DataSource;public class DatasourceFactory {private static final String TCP_PROTO tcp;private static final String JDBC_PROTO jdbc:mysql;FactoryServiceNamepublic DataSource create(ServiceName String url, Configuration MysqlConfiguration conf) {MysqlDataSource ds new MysqlDataSource();ds.setURL(url.replaceFirst(TCP_PROTO, JDBC_PROTO) / conf.getDatabaseName());ds.setUser(conf.getUsername());ds.setPassword(conf.getPassword());return ds;} 现在如果我们想从Apache Camel端点引用此数据源则必须将数据源的“ 名称 ”指定给端点uri。 例如“ jdbccustmersds ”其中customersds是数据源的名称。 “但是如何命名fabric8托管数据源” 这就是Alias节省一天的方式 import io.fabric8.annotations.Alias; import io.fabric8.annotations.ServiceName; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.cdi.ContextName; import org.apache.camel.model.language.ConstantExpression;import javax.ejb.Startup; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.sql.DataSource;ContextName(myCdiCamelContext) Startup ApplicationScoped public class MyRoutes extends RouteBuilder {InjectServiceName(mysql-service)Alias(customerds)DataSource dataSource;Overridepublic void configure() throws Exception {from(jetty:http://0.0.0.0:8080/list/).setBody(new ConstantExpression(select * from customers)).to(jdbc:customerds);} } 这是基于CDI的Camel应用程序的典型RouteBuilder。 它的特殊之处在于我们注入了一个名为“ customersds”的数据源。 “谁提供数据源” 简短的答案 Fabric8 。 答案不是那么简短 ServiceName “ mysql”注释告诉Fabric8数据源引用了“ mysql” Kubernetes服务。 Fabric8将为我们获取该服务的URL。 由于字段的类型不是字符串也不是URL而是数据源因此Fabric8将查找能够将字符串转换为数据源的 Factory方法。 在我们的例子中它将找到确实做到这一点的DataSourceFactory类。 由于这还不够出色 因此DataSourceFactory还接受 Configuration MysqlConfiguration 以便我们可以指定数据库名称凭据等内容请参阅我的上一篇文章。 配置数据源 在开始解释如何配置数据源之前让我退后一步回顾一下我以前的文章中的MysqlConfiguration import org.apache.deltaspike.core.api.config.ConfigProperty; import javax.inject.Inject;public class MysqlConfiguration {InjectConfigProperty(name USERNAME, defaultValue admin)private String username;InjectConfigProperty(name PASSWORD, defaultValue admin)private String password;InjectConfigProperty(name DATABASE_NAME, defaultValue mydb)private String databaseName;public String getUsername() {return username;}public String getPassword() {return password;}public String getDatabaseName() {return databaseName;}} 正如我在上一篇文章中提到的我们可以使用环境变量来将配置传递给我们的应用程序。 请记住此应用程序旨在存放在Docker容器中……。 MysqlConfiguration包含3个字段 环境变量USERNAME的字段用户名 环境变量PASSWORD的字段密码 环境变量DATABASE_NAME的字段databseName 因此我们需要3个环境变量每个字段一个。 然后我们的DataSourceFactory将传递一个的实例 可以从环境中检索具有任何值的MysqlConfiguration 以便它创建实际的DataSource。 “但是如何重用MysqlConfiguration来配置多个不同的服务” 因此想法是 Factory和 Configuration是可重用的。 毕竟不需要将工厂和模型类绑定到基础服务对吗 Fabric8通过使用服务名称作为环境变量的前缀来提供帮助。 它在运行时执行此操作并且工作方式如下 Fabric8扩展发现带有 ServiceName注释的注入点 它将检查目标类型并在需要时查找 Factory 。 Factory接受服务URL和实例MysqlConfiguration MysqlConfiguration将使用 ServiceName的值作为环境变量前缀来实例化。 因此为了使我们的示例正常工作我们需要将应用程序打包为Docker容器然后使用以下Kubernetes配置 { image: camel-cdi-jdbc,imagePullPolicy: IfNotPresent,name: camel-cdi-jdbc,env: [{name: MYSQL_SERVICE_USERNAME,value: admin},{name: MYSQL_SERVICE_PASSWORD,value: password},{name: MYSQL_SERVICE_DATABASE_NAME,value: customers}]} 现在如果我们需要在同一容器内创建一个额外的数据源例如从jdbc到jdbc的桥则只需为其他Kubernetes指定其他环境变量即可 。 现在如果服务的名称是“ mysql-target”那么我们的Kubernetes配置将看起来像 { image: camel-cdi-jdbc,imagePullPolicy: IfNotPresent,name: camel-cdi-jdbc,env: [{name: MYSQL_SERVICE_USERNAME,value: admin},{name: MYSQL_SERVICE_PASSWORD,value: password},{name: MYSQL_SERVICE_DATABASE_NAME,value: customers},{name: MYSQL_TARGET_USERNAME,value: targetUser},{name: MYSQL_TARGET_PASSWORD,value: targetPassword},{name: MYSQL_TARGET_DATABASE_NAME,value: targetCustomers}]} …我们可以通过在项目中添加带有限定符 ServiceName “ mysql-target”的注入点来使用它。 您可以在Fabric8快速入门中找到类似的示例。 更具体地说就是camel-cdi-amq快速入门 。 敬请关注 我希望你喜欢它。 不久将有更多相关主题包括为在Kubernetes上运行的Java应用程序编写集成测试。 翻译自: https://www.javacodegeeks.com/2015/06/using-camel-cdi-inside-kubernetes-with-fabric8.htmljs中使用camel框架
http://www.huolong8.cn/news/170436/

相关文章:

  • linux系统搭建网站保定网站排名哪家公司好
  • 装修公司营销网站模板制作网页时一般使用什么对网页进行布局
  • 做图标的网站网店装修图
  • 做特效很牛的一个外国网站自己可以建设环保公益网站吗
  • 用Html5做网站徐城乡建设局网站
  • 重庆在百度做个网站多少钱烟台网站关键词推广
  • 合肥建设干部学校网站wordpress绑定域名后乱码
  • 大型网站 php怎样把自己做的网站发布
  • 做网站需要物流信息端口哈尔滨新闻最新消息今天
  • 组织建设 湖南省直工会网站北京装修价格
  • 适合设计师的网站网站模板怎么修改logo
  • 上线了相同网站邢台市建设局网站
  • 如何规范网站使用网站公司推荐
  • 域名与网站区别网站竞争对手分析
  • jsp网站开发遇到的问题阿里免费域名申请
  • 洛阳东翔科技做的网站做响应式网站好不好
  • 个人介绍网站源码济宁做网站哪家好
  • 怎样查网站空间地址WordPress支付宝登录
  • 做设计兼职网站绵阳网站建设联系电话
  • 免备案域名购买网站wordpress设置文章固定标题
  • 怎么做免费域名网站网站定制公司报价
  • 写作的网站哪个好大学 生免费商业网站设计
  • 高端网站建设个人福州网站制作建设
  • 怎么编辑网站后台鄂州免费设计网站建设
  • 购物网站开发 项目描述网站设计要如何做支付功能
  • 网站开发员纵向发展如何让自己的网站快速被百度收录
  • 中国品牌网站官网wordpress 网站教程
  • 技能培训中心网站建设个人备案域名做企业网站
  • 滕州网站建设哪家好网站排名站长之家
  • 网站建设尾款放在什么科目里重庆建设工程信息网怎么登录