发布一个k8s部署视频:https://edu.youkuaiyun.com/course/detail/26967
课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。
腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518
第二个视频发布 https://edu.youkuaiyun.com/course/detail/27109
腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518
介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。
第三个视频发布:https://edu.youkuaiyun.com/course/detail/27574
详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件
————————————————------------------------------------------------------------------------------------------------------------------
————————————————
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<rabbit:connection-factory id="connectionFactory"
host="${rabbitmq.proxy}" port="${rabbitmq.proxy.port}"
username="guest" password="guest"/>
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" retry-template="retryTemplate"
exchange="user"/>
<bean id="retryTemplate" class="org.springframework.retry.support.RetryTemplate">
<property name="backOffPolicy">
<bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
<property name="initialInterval" value="1000"/>
<property name="multiplier" value="10.0"/>
<property name="maxInterval" value="10000"/>
</bean>
</property>
<property name="retryPolicy">
<bean class="org.springframework.retry.policy.SimpleRetryPolicy">
<property name="maxAttempts" value="3"/>
</bean>
</property>
</bean>
<rabbit:admin id="admin" connection-factory="connectionFactory"/>
<!--queue declare-->
<rabbit:queue name="kuaidi100.subscribe" durable="true"/>
<rabbit:queue name="orderCheck.subscribe" durable="true"/>
<rabbit:queue name="offSaleSku.subscribe" durable="true"/>
<rabbit:queue name="goodsOffSale.biData" durable="true"/>
<rabbit:queue name="goodsOffSale.spreadMail" durable="true"/>
<rabbit:queue name="noOrder.goods" durable="true"/>
<rabbit:queue name="bonus.grantbonus" durable="true"/>
<rabbit:queue name="userRankChange.subscribe" durable="true"/>
<rabbit:queue name="inviteOrderShipped.subscribe" durable="true"/>
<rabbit:queue name="inviteOrderReturned.subscribe" durable="true"/>
<rabbit:queue name="inviteOrderCodDelivery.subscribe" durable="true"/>
<rabbit:queue name="filterCommentSensitive.subscribe" durable="true"/>
<rabbit:queue name="shippingException.order" durable="true"/>
<rabbit:queue name="receiptSendEmail.goods" durable="true"/>
<rabbit:queue name="shippingExceptionSendSms.order" durable="true"/>
<!--<rabbit:queue name="CODOrderShipmentSendSms.order" durable="true"/>-->
<rabbit:queue name="payment.masapay.refund.notify" durable="true"/>
<rabbit:queue name="CODorderExpediteSendSms.order" durable="true"/>
<rabbit:queue name="unShippedReturnSendSms.order" durable="true"/>
<rabbit:queue name="codVerifyThreeDaysSendSms.order" durable="true"/>
<rabbit:queue name="codArriveEithteenDaysSendSms.order" durable="true"/>
<rabbit:queue name="goodsStockOnWayTotal.process" durable="true"/>
<rabbit:queue name="orderOvertimeGoodsSms.order" durable="true"/>
<rabbit:queue name="onOffSale.order" durable="true"/>
<rabbit:queue name="userCodGrade.order" durable="true"/>
<rabbit:queue name="addGoodsOperateLog.goods" durable="true"/>
<rabbit:queue name="supplier.collect" durable="true"/>
<rabbit:queue name="unDestinationCountry.order" durable="true"/>
<rabbit:queue name="goodsStockDetailDailyReport.process" durable="true"/>
<rabbit:queue name="codManyTimeNoSuccessfulSendSms.order" durable="true"/>
<rabbit:queue name="lowRiskSendSms.order" durable="true"/>
<rabbit:queue name="skuDailySales.process" durable="true"/>
<rabbit:queue name="skuStockWarn.process" durable="true"/>
<!-- 处理老数据队列 -->
<rabbit:queue name="temp.old.data.process" durable="true"/>
<!--queue declare-->
<!--queue binding routing key-->
<rabbit:topic-exchange name="jollychic.topic" durable="true" declared-by="admin">
<rabbit:bindings>
<rabbit:binding queue="kuaidi100.subscribe" pattern="kuaidi100.#"/>
<rabbit:binding queue="orderCheck.subscribe" pattern="orderCheck.#"/>
<rabbit:binding queue="goodsOffSale.biData" pattern="goodsOffSale.#"/>
<rabbit:binding queue="goodsOffSale.spreadMail" pattern="goodsOffSale.#"/>
<rabbit:binding queue="bonus.grantbonus" pattern="bonus.#"/>
<rabbit:binding queue="noOrder.goods" pattern="noOrder.#"/>
<rabbit:binding queue="userRankChange.subscribe" pattern="userRankChange.#"/>
<rabbit:binding queue="inviteOrderShipped.subscribe" pattern="inviteOrderShipped.#"/>
<rabbit:binding queue="inviteOrderReturned.subscribe" pattern="inviteOrderReturned.#"/>
<rabbit:binding queue="inviteOrderCodDelivery.subscribe" pattern="inviteOrderCodDelivery.#"/>
<rabbit:binding queue="filterCommentSensitive.subscribe" pattern="filterCommentSensitive.#"/>
<rabbit:binding queue="shippingException.order" pattern="shippingException.#"/>
<rabbit:binding queue="receiptSendEmail.goods" pattern="receiptSendEmail.#"/>
<rabbit:binding queue="shippingExceptionSendSms.order" pattern="shippingExceptionSendSms.#"/>
<!--<rabbit:binding queue="CODOrderShipmentSendSms.order" pattern="CODOrderShipmentSendSms.*"/>-->
<rabbit:binding queue="payment.masapay.refund.notify" pattern="payment.masapay.refund.notify"/>
<rabbit:binding queue="CODorderExpediteSendSms.order" pattern="CODorderExpediteSendSms.#"/>
<rabbit:binding queue="codVerifyThreeDaysSendSms.order" pattern="codVerifyThreeDaysSendSms.#"/>
<rabbit:binding queue="codArriveEithteenDaysSendSms.order" pattern="codArriveEithteenDaysSendSms.#"/>
<rabbit:binding queue="orderOvertimeGoodsSms.order" pattern="orderOvertimeGoodsSms.#"/>
<rabbit:binding queue="unShippedReturnSendSms.order" pattern="unShippedReturnSendSms.#"/>
<rabbit:binding queue="onOffSale.order" pattern="onOffSale.#"/>
<rabbit:binding queue="userCodGrade.order" pattern="userCodGrade.#"/>
<rabbit:binding queue="addGoodsOperateLog.goods" pattern="addGoodsOperateLog.#"/>
<rabbit:binding queue="supplier.collect" pattern="supplierCollect.#"/>
<rabbit:binding queue="unDestinationCountry.order" pattern="unDestinationCountry.#"/>
<rabbit:binding queue="codManyTimeNoSuccessfulSendSms.order" pattern="codManyTimeNoSuccessfulSendSms.#"/>
<rabbit:binding queue="skuDailySales.process" pattern="skuDailySales.#"/>
<rabbit:binding queue="skuStockWarn.process" pattern="skuStockWarn.#"/>
<rabbit:binding queue="lowRiskSendSms.order" pattern="lowRiskSendSms.#"/>
</rabbit:bindings>
</rabbit:topic-exchange>
<rabbit:topic-exchange name="jollychic.wms" durable="true" declared-by="admin">
<rabbit:bindings>
<rabbit:binding queue="goodsStockOnWayTotal.process" pattern="goodsStockOnWayTotal.process"/>
<rabbit:binding pattern="goodsStockDetailDailyReport.process" queue="goodsStockDetailDailyReport.process"/>
<rabbit:binding pattern="temp.old.data.process" queue="temp.old.data.process"/>
</rabbit:bindings>
</rabbit:topic-exchange>
<!--queue binding routing key-->
<!--queue consumer-->
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="manual" prefetch="1">
<rabbit:listener ref="subscribeShippingInfo" queue-names="kuaidi100.subscribe"/>
<rabbit:listener ref="orderCheck" queue-names="orderCheck.subscribe"/>
<rabbit:listener ref="offSaleSku" queue-names="offSaleSku.subscribe"/>
<rabbit:listener ref="spreadMailListener" queue-names="goodsOffSale.spreadMail"/>
<rabbit:listener ref="noOrderGoods" queue-names="noOrder.goods"/>
<rabbit:listener ref="grantBonus" queue-names="bonus.grantbonus"/>
<rabbit:listener ref="userRankChange" queue-names="userRankChange.subscribe"/>
<rabbit:listener ref="inviteOrderShipped" queue-names="inviteOrderShipped.subscribe"/>
<rabbit:listener ref="inviteOrderReturned" queue-names="inviteOrderReturned.subscribe"/>
<rabbit:listener ref="inviteOrderCodDelivery" queue-names="inviteOrderCodDelivery.subscribe"/>
<rabbit:listener ref="filterCommentSensitive" queue-names="filterCommentSensitive.subscribe"/>
<rabbit:listener ref="shippingException" queue-names="shippingException.order"/>
<rabbit:listener ref="receiptSendEmail" queue-names="receiptSendEmail.goods"/>
<rabbit:listener ref="shippingExceptionSendSms" queue-names="shippingExceptionSendSms.order"/>
<!--<rabbit:listener ref="CODOrderShipmentSendSms" queue-names="CODOrderShipmentSendSms.order"/>-->
<rabbit:listener ref="paymentMasapayRefundNotify" queue-names="payment.masapay.refund.notify"/>
<rabbit:listener ref="CODorderExpediteSendSms" queue-names="CODorderExpediteSendSms.order"/>
<rabbit:listener ref="codVerifyThreeDaysSendSms" queue-names="codVerifyThreeDaysSendSms.order"/>
<rabbit:listener ref="codArriveEithteenDaysSendSms" queue-names="codArriveEithteenDaysSendSms.order"/>
<rabbit:listener ref="unShippedReturnSendSms" queue-names="unShippedReturnSendSms.order"/>
<rabbit:listener ref="paymentMasapayRefundNotify" queue-names="payment.masapay.refund.notify"/>
<rabbit:listener ref="goodsStockOnwayTotal" queue-names="goodsStockOnWayTotal.process"/>
<rabbit:listener ref="orderOvertimeGoodsSms" queue-names="orderOvertimeGoodsSms.order"/>
<rabbit:listener ref="onOffSale" queue-names="onOffSale.order"/>
<rabbit:listener ref="userCodGrade" queue-names="userCodGrade.order"/>
<rabbit:listener ref="addGoodsOperateLog" queue-names="addGoodsOperateLog.goods"/>
<rabbit:listener ref="supplierCollect" queue-names="supplier.collect"/>
<rabbit:listener ref="unDestinationCountry" queue-names="unDestinationCountry.order"/>
<rabbit:listener ref="goodsStockDetailDailyReportProcessListener"
queue-names="goodsStockDetailDailyReport.process"/>
<rabbit:listener ref="codManyTimeNoSuccessfulSendSms" queue-names="codManyTimeNoSuccessfulSendSms.order"/>
<rabbit:listener ref="skuDailySalesListener" queue-names="skuDailySales.process"/>
<rabbit:listener ref="skuStockWarnListener" queue-names="skuStockWarn.process"/>
<rabbit:listener ref="lowRiskSendSms" queue-names="lowRiskSendSms.order"/>
<rabbit:listener ref="tempOldDataProcessListener" queue-names="temp.old.data.process"/>
</rabbit:listener-container>
<!--queue consumer-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">
<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.proxy}"
port="${rabbitmq.proxy.port}"
username="guest" password="guest"/>
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory" retry-template="retryTemplate"
exchange="${mq.exchange}"/>
<bean id="retryTemplate" class="org.springframework.retry.support.RetryTemplate">
<property name="backOffPolicy">
<bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
<property name="initialInterval" value="1000"/>
<property name="multiplier" value="10.0"/>
<property name="maxInterval" value="10000"/>
</bean>
</property>
<property name="retryPolicy">
<bean class="org.springframework.retry.policy.SimpleRetryPolicy">
<property name="maxAttempts" value="3"/>
</bean>
</property>
</bean>
<rabbit:admin id="admin" connection-factory="connectionFactory"/>
<!-- 添加拣货异常后续处理队列 -->
<rabbit:queue name="${mq.queueName.prefix}.pickingException.afterAdd" durable="true"/>
<!-- 拣货单单个SKU下架 忙的仓库一仓一个,其他用同一个 -->
<rabbit:queue name="${mq.queueName.prefix}.pickingGoods.afterProcessed" durable="true"/>
<!-- 拣货完成队列 忙的仓库一仓一个,其他用同一个 -->
<rabbit:queue name="${mq.queueName.prefix}.pickingInfo.done" durable="true"/>
<!-- 上架单单个SKU上架 忙的仓库一仓一个,其他用同一个 -->
<rabbit:queue name="${mq.queueName.prefix}.onShelfGoods.afterProcessed" durable="true"/>
<!-- 上架单完成队列 忙的仓库一仓一个,其他用同一个 -->
<rabbit:queue name="${mq.queueName.prefix}.onShelfInfo.done" durable="true"/>
<!-- 退货上架单 上架商品 -->
<rabbit:queue name="${mq.queueName.prefix}.returnedOnShelfGoods.afterProcessed" durable="true"/>
<!-- 移库 -->
<rabbit:queue name="${mq.queueName.prefix}.moveStockGoods.afterProcessed" durable="true"/>
<!-- 在途汇总表 数量变更 -->
<rabbit:queue name="${mq.queueName.prefix}.goodsStockOnWayTotal.process" durable="true"/>
<!-- 订单墙拣货波次完成 -->
<rabbit:queue name="${mq.queueName.prefix}.depotOrderWallPickingBatch.done" durable="true"/>
<!-- Start : ############发货后退货############ -->
<!-- 销售退货签收拉取订单数据 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.received" durable="true"/>
<!-- 销售退货签收单-需要客服处理 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.received.needCsProcess" durable="true"/>
<!-- 销售退货签收拉取订单数据回调 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.received.callback" durable="true"/>
<!-- 销售退货验收推送 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.checked" durable="true"/>
<!-- End : ############发货后退货############ -->
<!-- Start : ##############发货前退货############# -->
<!-- 发货前退货申请 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.goods.apply" durable="true"/>
<!-- 发货前退货处理结果上传 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.goods.apply.upload" durable="true"/>
<!-- 发货前退货处理成功下发 -->
<rabbit:queue name="${mq.queueName.prefix}.order.return.success.callback" durable="true"/>
<!-- End : ##############发货前退货############# -->
<!-- 同步库存总表库存数量 -->
<rabbit:queue name="${mq.queueName.prefix}.goods.stock.change" durable="true"/>
<!-- Start : ##############订单作业单操作################ -->
<!-- 处理OMS的订单作业单下发 -->
<rabbit:queue name="${mq.queueName.prefix}.order.check.issued" durable="true"/>
<!-- 订单作业单配货锁库存 -->
<rabbit:queue name="${mq.queueName.prefix}.order.prepare" durable="true"/>
<!-- 订单作业单配货锁库存结果上传OMS -->
<rabbit:queue name="${mq.queueName.prefix}.order.prepare.upload" durable="true"/>
<!-- 处理订单作业单配货锁库存结果上传OMS后的反馈 -->
<rabbit:queue name="${mq.queueName.prefix}.order.prepare.callback" durable="true"/>
<!-- 订单作业单分配货位锁明细库存 -->
<rabbit:queue name="${mq.queueName.prefix}.order.assign.locator" durable="true"/>
<!-- 订单信息更新上传 -->
<rabbit:queue name="${mq.queueName.prefix}.order.update"/>
<!-- 订单发货后处理调用OMS -->
<rabbit:queue name="${mq.queueName.prefix}.order.afterSend"/>
<!-- masapay日志记录 -->
<rabbit:queue name="${mq.queueName.prefix}.order.masapay.log" durable="true"/>
<!-- 获取 sku goods信息 -->
<rabbit:queue name="${mq.queueName.prefix}.get.goods.sku" durable="true"/>
<!-- 接收 sku goods信息 -->
<rabbit:queue name="${mq.queueName.prefix}.get.goods.sku.callback" durable="true"/>
<!-- 拣货异常引起的订单缺货上传 -->
<rabbit:queue name="${mq.queueName.prefix}.order.oos.pickingExp.upload" durable="true"/>
<!-- 盘点引起的订单缺货信息下发 -->
<rabbit:queue name="${mq.queueName.prefix}.order.oos.inventory.issued" durable="true"/>
<!-- 订单地址更新 -->
<rabbit:queue name="${mq.queueName.prefix}.order.address.update.issued" durable="true"/>
<!-- 订单是否问题订单更新 -->
<rabbit:queue name="${mq.queueName.prefix}.order.problem.update.issued" durable="true"/>
<!-- 到货作业单下发 -->
<rabbit:queue name="${mq.queueName.prefix}.deliveredOrderInfo.issued" durable="true"/>
<!-- End : ##############订单作业单操作################ -->
<!-- 队列绑定路由规则 -->
<rabbit:topic-exchange name="${mq.exchange}" durable="true" declared-by="admin">
<rabbit:bindings>
<rabbit:binding queue="${mq.queueName.prefix}.pickingException.afterAdd"
pattern="${mq.queueName.prefix}.pickingException.afterAdd"/>
<rabbit:binding queue="${mq.queueName.prefix}.pickingGoods.afterProcessed"
pattern="${mq.queueName.prefix}.pickingGoods.afterProcessed"/>
<rabbit:binding queue="${mq.queueName.prefix}.pickingInfo.done"
pattern="${mq.queueName.prefix}.pickingInfo.done"/>
<rabbit:binding queue="${mq.queueName.prefix}.onShelfGoods.afterProcessed"
pattern="${mq.queueName.prefix}.onShelfGoods.afterProcessed"/>
<rabbit:binding queue="${mq.queueName.prefix}.onShelfInfo.done"
pattern="${mq.queueName.prefix}.onShelfInfo.done"/>
<rabbit:binding queue="${mq.queueName.prefix}.returnedOnShelfGoods.afterProcessed"
pattern="${mq.queueName.prefix}.returnedOnShelfGoods.afterProcessed"/>
<rabbit:binding queue="${mq.queueName.prefix}.moveStockGoods.afterProcessed"
pattern="${mq.queueName.prefix}.moveStockGoods.afterProcessed"/>
<rabbit:binding queue="${mq.queueName.prefix}.goodsStockOnWayTotal.process"
pattern="${mq.queueName.prefix}.goodsStockOnWayTotal.process"/>
<rabbit:binding queue="${mq.queueName.prefix}.depotOrderWallPickingBatch.done"
pattern="${mq.queueName.prefix}.depotOrderWallPickingBatch.done"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.received"
pattern="${mq.queueName.prefix}.order.return.received"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.received.needCsProcess"
pattern="${mq.queueName.prefix}.order.return.received.needCsProcess"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.received.callback"
pattern="${mq.queueName.prefix}.order.return.received.callback"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.checked"
pattern="${mq.queueName.prefix}.order.return.checked"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.goods.apply"
pattern="${mq.queueName.prefix}.order.return.goods.apply"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.goods.apply.upload"
pattern="${mq.queueName.prefix}.order.return.goods.apply.upload"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.return.success.callback"
pattern="${mq.queueName.prefix}.order.return.success.callback"/>
<rabbit:binding queue="${mq.queueName.prefix}.goods.stock.change"
pattern="${mq.queueName.prefix}.goods.stock.change"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.check.issued"
pattern="${mq.queueName.prefix}.order.check.issued"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.prepare"
pattern="${mq.queueName.prefix}.order.prepare"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.prepare.upload"
queue="${mq.queueName.prefix}.order.prepare.upload"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.prepare.callback"
pattern="${mq.queueName.prefix}.order.prepare.callback"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.assign.locator"
pattern="${mq.queueName.prefix}.order.assign.locator"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.update"
queue="${mq.queueName.prefix}.order.update"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.afterSend"
queue="${mq.queueName.prefix}.order.afterSend"/>
<rabbit:binding queue="${mq.queueName.prefix}.order.masapay.log"
pattern="${mq.queueName.prefix}.order.masapay.log"/>
<rabbit:binding queue="${mq.queueName.prefix}.get.goods.sku"
pattern="${mq.queueName.prefix}.get.goods.sku"/>
<rabbit:binding queue="${mq.queueName.prefix}.get.goods.sku.callback"
pattern="${mq.queueName.prefix}.get.goods.sku.callback"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.oos.inventory.issued"
queue="${mq.queueName.prefix}.order.oos.inventory.issued"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.oos.pickingExp.upload"
queue="${mq.queueName.prefix}.order.oos.pickingExp.upload"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.address.update.issued"
queue="${mq.queueName.prefix}.order.address.update.issued"/>
<rabbit:binding pattern="${mq.queueName.prefix}.order.problem.update.issued"
queue="${mq.queueName.prefix}.order.problem.update.issued"/>
<rabbit:binding pattern="${mq.queueName.prefix}.deliveredOrderInfo.issued"
queue="${mq.queueName.prefix}.deliveredOrderInfo.issued"/>
</rabbit:bindings>
</rabbit:topic-exchange>
</beans>