Skip to content

Dễ bề sử dụng canal-spring-boot-starter bản cài đặt

License

Notifications You must be signed in to change notification settings

xizixuejie/canal-spring

Repository files navigation

License Maven Central

Canal-Spring

Dễ bề sử dụng canal-springboot bản cài đặt

Còn ở thí nghiệm sử dụng giai đoạn, nếu ở sử dụng trong quá trình phát hiện vấn đề, hoan nghênhĐệ trình issue Hoặc làGia nhập qq đàn Thảo luận

Nhanh chóng bắt đầu

  1. Hoàn cảnh ỷ lại

    jdk >= 1.8

    canal-server = 1.1.6

  2. Dẫn vào maven ỷ lại

    <dependency>
    <groupId>io.github.xizixuejie</groupId>
    <artifactId>canal-spring-boot-starter</artifactId>
    <version>0.0.17</version>
    </dependency>
  3. Phối trí canal phục vụ cơ bản tin tức

    canal:
    server:127.0.0.1:11111
    destination:example
  4. Ở khởi động loại tăng thêm chú giải@EnableCanalListener

    valueThuộc tính hoặc làbasePackagesThuộc tính chỉ định rà quét bao đường nhỏ.

  5. Tự định nghĩa CanalListener thực hiệnio.xzxj.canal.core.listener.EntryListenerTiếp lời

  6. Thực hiện loại thượng gia tăng chú giải@CanalListener(schemaName = "${database}", tableName = "${table_name}" )

    ${database}Nghe lén cơ sở dữ liệu danh

    ${table_name}Nghe lén biểu danh. Có thể là chính tắc biểu đạt thức

    Tiếp lời phiếm hình là đối ứng thật thể loại

  7. Thực hiệninsert,updateHoặc làdeletePhương pháp tới nghe lén ngươi muốn làm thao tác

Thí dụ mẫu số hiệu

@CanalListener
publicclassTestListenerimplementsEntryListener<TestEntity> {
privatestaticfinalLoggerlog=LoggerFactory.getLogger(TestListener.class);

@Override
publicvoidinsert(TestEntitytestEntity) {
log.info("insert={}",testEntity);
}

@Override
publicvoidupdate(TestEntitybefore,TestEntityafter) {
log.info("update before={}",before);
log.info("update after={}",after);
}

@Override
publicvoiddelete(TestEntitytestEntity) {
log.info("delete={}",testEntity);
}
}

Công năng

Đánh câu chính là đã thực hiện, chưa đánh câu chính là về sau sẽ thực hiện

  • Thật thể loại danh tự động thay đổi biểu danh
  • Cùng theo jpa hoặc là mp chú giải tự động thay đổi thật thể loại thuộc tính, hoặc là mặt khác orm dàn giáo chú giải ( yêu cầu tự định nghĩa )
  • tcp hình thức
  • kafka hình thức
  • rocketMQ hình thức
  • rabbitMQ hình thức
  • pulsarMQ hình thức

Tự định nghĩa thật thể loại thuộc tính liệt tên thay đổi

Nếu ngươi dùng orm dàn giáo không phải mybatis-plus hoặc là spring-data-jpa, có thể tự định nghĩa một cái thay đổi khí.

  1. Tự định nghĩa bean kế thừaio.xzxj.canal.core.metadata.AbstractEntityInfoHelper
  2. Thực hiện trừu tượng loại trung ba cái phương pháp
    • Thu hoạch cơ sở dữ liệu biểu danhgetTableName
    • Hay không vì số liệu kho liệtisColumnFiled
    • Thu hoạch đối ứng cơ sở dữ liệu liệt danhgetColumn

Tự định nghĩa thật thể loại thuộc tính loại hình thay đổi

Nếu ngươi thật thể loại thuộc tính không ởio.xzxj.canal.core.convertor.implCái này trong bao thực hiện, có thể tự định nghĩa loại hình thay đổi khí.

Toàn cục phối trí phương thức

  1. Tự định nghĩa bean thực hiệnio.xzxj.canal.core.convertor.IColumnConvertor<T>,Phiếm hình là ngươi thật thể loại loại hình.
  2. Thực hiệnconvertPhương pháp

Chú giải đơn độc chỉ định

Ưu tiên cấp so toàn cục cao

  1. Ở thật thể loại thuộc tính thượng tăng thêm@ColumnConvertorChú giải
  2. value làio.xzxj.canal.core.convertor.IColumnConvertor<T>Thực hiện loại, cần phải có một cái vô tham cấu tạo hàm số.

@CanalTopicPartitions sử dụng thuyết minh

Chỉ ở kafka hình thức ra đời hiệu

Có thể thêm ở ngươiEntryListener<T>Thực hiện loại thượng, dùng để chỉ định nghe lén cụ thể cái nào topic cùng với partition, nếu chỉ chỉ định topic, tắc sẽ nghe lén cái này topic sở hữu partition.

Phối trí thuyết minh

Thuộc tính Miêu tả Cam chịu giá trị
canal.server canal phục vụ địa chỉ
Nếu là Kafka hình thức vì Kafka địa chỉ, nhiều địa chỉ lấy,Phân cách.
Nếu là rabbitMQ hình thức vì rabbitMQ phục vụ địa chỉ, trước mắt chỉ duy trì đơn cái
127.0.0.1:11111
canal.annotation-type Lựa chọn thật thể loại thượng chú giải loại hình mybatis_plus
canal.destination canal instance tên
kafka hình thức vì topic tên
rabbitMQ hình thức vì queue tên
example
canal.filter canal lọc biểu tên, như phối trí tắc chỉ đặt mua phối trí biểu ""
canal.async Hay không là dị bước tiêu phí, dị bước tiêu phí khi, tiêu phí khi dị thường đem dẫn tới tin tức sẽ không hồi lăn, cũng không cam đoan trình tự tính true
canal.timeout Tiêu phí thời gian khoảng cách (s) 1s
canal.server-mode canal bản cài đặt loại hình, trước mắt duy trì tcp,kafka,rabbitMQ loại hình tcp
canal.username canal username null
canal.password canal mật mã null
canal.mq.flat-message JSON tin tức cách thức true
canal.kafka.group-id kafka groupId người tiêu thụ đặt mua tin tức khi có thể sử dụng, kafka canal bản cài đặt null
canal.kafka.dynamic-topic kafka người tiêu thụ đặt mua tin tức topic cùng partition, nếu dùng cái này thuộc tính chỉ định topic phối trí, tắc sẽ xem nhẹ canal.kafka.topics phối trí {}
canal.kafka.topics kafka người tiêu thụ đặt mua tin tức topic []
canal.kafka.partition kafka partition đã qua khi, nếu yêu cầu thiết trí topic phân khu, thỉnh sử dụng dynamicTopic tới chỉ định null
canal.rabbit-mq.virtual-host rabbitMq virtualHost /
canal.rabbit-mq.queue-name rabbitMq đội ngũ danh null
canal.rabbit-mq.access-key Ali ak ""
canal.rabbit-mq.secret-key Ali sk ""
canal.rabbit-mq.resource-owner-id Tài nguyên owner tài khoản ( chủ tài khoản null
canal.rabbit-mq.username rabbitMq username guest
canal.rabbit-mq.password rabbitMq password guest

Đổi mới ký lục

  • 2024-09-04 v0.0.17 EntryListener update gia tăng đổi mới thuộc tính tập hợp tham số. TcpClient cắt đứt quan hệ trọng liền.
  • 2024-05-27 v0.0.16 tử loại kế thừa phụ loại tương đồng thuộc tính khi, thu hoạch tự đoạn tên cùng thật thể thuộc tính đối ứng quan hệ sẽ xuất hiện dị thường vấn đề.
  • 2024-05-07 v0.0.15 sửa chữa thu hoạch loại thuộc tính, chỉ có thể thu hoạch một tầng phụ loại thuộc tính vấn đề.
  • 2024-03-27 v0.0.14 sửa chữa nhiều destination khi, CanalClient tiêu hủy xuất hiện dị thường vấn đề
  • 2024-03-15 v0.0.13 ưu hoá dị thường xử lý; sửa chữa spring tự động phối trí
  • 2024-03-12 v0.0.12 sửa chữa tableName chính tắc phối trí mất đi hiệu lực vấn đề
  • 2024-03-12 v0.0.11 sửa chữa một ít bug; kafka hình thức cùng tcp hình thức duy trì nhiều destination, hơn nữa ở kafka hình thức hạ duy trì tự định nghĩa topic, partition
  • 2023-12-26 v0.0.10 sửa chữa một ít bug, duy trì một cái biểu đối ứng nhiều EntryListener, duy trì chú giải chỉ định tự định nghĩa thật thể loại thuộc tính loại hình thay đổi.
  • 2023-12-18 v0.0.9 cho phép tự định nghĩa thật thể loại thuộc tính tên cùng loại hình thay đổi.
  • 2023-12-13 v0.0.8 ưu hoá Listener xử lý quá trình; mq hình thức phối trí flat-message.
  • 2023-09-25 v0.0.7 ưu hoá định nghĩa nhiều cùng kho bất đồng biểu Listener dẫn tới chỉ có thể thu hoạch đến cuối cùng một cái Listener tin tức vấn đề.
  • 2023-09-01 v0.0.6 gia tăng List tự đoạn thay đổi, sửa chữa cam chịu tcp hình thức tự động phối trí không có hiệu lực vấn đề.
  • 2023-08-16 đổi mới v0.0.5 phiên bản.@CanalListenerChú giảischemaNameThuộc tính có thể chỉ định nhiều, cũng có thể sử dụng chính tắc biểu đạt.
  • 2023-05-31 đổi mới v0.0.4 phiên bản. Sửa chữa tiêu phí tin tức dị thường xử lý.
  • 2023-05-04 đổi mới v0.0.3 phiên bản.@CanalListenerChú giảitableNameThuộc tính có thể dùng chính tắc biểu đạt thức.
  • 2023-03-25 đổi mới v0.0.2 phiên bản. Thực hiện RabbitMQ loại hình bản cài đặt.
  • 2023-03-22 đổi mới v0.0.1 phiên bản. Thực hiện chỉ định kho danh, biểu danh nghe lén, thật thể loại thuộc tính tự động thay đổi, tcp cùng kafka loại hình bản cài đặt.

Tham khảo