เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดนเดพเดฏเต! เดเดคเดพ - เดเตเดตเดพเตผเดเตเดเดธเต เดชเดฐเดฎเตเดชเดฐเดฏเดฟเดฒเต เดเดเตเดเดณเตเดเต เด
เดตเดธเดพเดจ เดชเตเดธเตเดฑเตเดฑเต! (เดตเตเดฃเด, เดเดเตเดเดณเตเดเต เดตเตเดฌเดฟเดจเดพเตผ เดเดพเดฃเตเด
ะ
เดชเดคเดฟเดชเตเดชเต 0.17.0 เดฎเตเดคเตฝ,
OpenShift เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเตฝ เดจเดฟเดเตเดเตพ เดเดคเดฟเดจเดเด AMQ เดเตบเดฒเตเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เด
เดจเตเดฎเดพเดจเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต (เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดพเดฃเตเด
เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดเดฐเต เดเตเดตเดพเตผเดเตเดเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเตเด, เด เดคเต เดฑเดฟเดฏเดพเดเตเดเตเดตเต เดฎเตเดธเตเดเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเตผเดกเตผ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดเดเดตเตเดณเดฏเดฟเตฝ เดธเดจเตเดฆเตเดถ เดเตเดฏเตเดตเดฟเดฒเตเดเตเดเต เดเตผเดกเดฑเตเดเตพ เด เดฏเดฏเตโเดเตเดเตเดจเตเดจ เดเตผเดกเตผ เดเดจเดฑเตเดฑเตเดฑเดฑเตเด เดเตเดฏเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดเดพเดฃเดพเดตเตเดจเตเดจ เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดเตเดเตพ เดธเตเดทเตโเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดเตผเดกเตผ เดชเตเดฐเตเดธเดธเดฑเตเด เด เด เดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเตพเดชเตเดชเตเดเตเด.
เดเดฐเดฟเดเตเดเตฝ เดเดเตเดเตพ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเตเดเดดเดฟเดเตเดเดพเตฝ, เดฎเตเดธเตเดเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเดฒเตเดเตเดเต เดเดเตเดเดจเต เดเดเดฌเดกเต เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเตเด เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเดฟเดญเดตเดเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต AMQ เดเตบเดฒเตเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดเดเตเดเตพ เดจเดฟเดเตเดเดณเต เดเดพเดฃเดฟเดเตเดเตเด.
เดเตเดตเดพเตผเดเตเดเดธเต เดเดชเตเดชเต
เดเดเตเดเดณเตเดเต เดเตเดตเดพเตผเดเตเดเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเต เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเด เดชเดคเดฟเดชเตเดชเดพเดฃเต
เดเตผเดกเตผ เดเดจเดฑเตเดฑเตเดฑเตผ
เดเดฐเต 5 เดธเตเดเตเดเตปเดกเดฟเดฒเตเด "เดเตผเดกเดฑเตเดเตพ" เดเดจเตเดจ เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดจเดฑเตเดฑเตเดฑเตผ เดเดเดคเดพเดจเดฎเดพเดฏเดฟ เดตเดณเดฐเตเดจเตเดจ เดเตผเดกเตผ เดเดกเดฟเดเตพ เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต.
@ApplicationScoped
public class OrderGenerator {
private int orderId = 1;
@Outgoing("orders")
public Flowable<Integer> generate() {
return Flowable.interval(5, TimeUnit.SECONDS)
.map(tick -> orderId++);
}
}
เดเตผเดกเตผ เดชเตเดฐเตเดธเดธเตเดธเตผ
เดเตผเดกเตผ เดนเดพเตปเดกเตโเดฒเตผ เดเดคเดฟเดฒเตเด เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดเดคเต "เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดเตเดเตพ" เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฃ เดเดกเดฟ เดจเตฝเดเตเดจเตเดจเต.
@ApplicationScoped
public class OrderProcessor {
@Incoming("orders")
@Outgoing("confirmations")
public Integer process(Integer order) {
// ะะดะตะฝัะธัะธะบะฐัะพั ะฟะพะดัะฒะตัะถะดะตะฝะธั ัะฐะฒะตะฝ ัะดะฒะพะตะฝะฝะพะผั ะธะดะตะฝัะธัะธะบะฐัะพัั ะทะฐะบะฐะทะฐ <img draggable="false" class="emoji" alt=":-)" src="https://s.w.org/images/core/emoji/11.2.0/svg/1f642.svg">
return order * 2;
}
}
เดธเตเดฅเดฟเดฐเตเดเดฐเดฃ เดเดฑเดตเดฟเดเดเตเดเตพ
เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเด เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดเตเดเตพ เดฒเดฟเดธเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต HTTP เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเดพเดฃเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฃ เดเดฑเดตเดฟเดเด.
@Path("/confirmations")
public class ConfirmationResource {
@Inject
@Stream("confirmations") Publisher<Integer> orders;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return "hello";
}
@GET
@Path("/stream")
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher<Integer> stream() {
return orders;
}
}
เดเดฎเดชเตเดชเตเดเตเดคเตเดคเดฒเต
AMQ เดเตบเดฒเตเดจเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเดณเตเดเต เด เดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดเดฟเดฒ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดกเดพเดฑเตเดฑ เดเดตเดถเตเดฏเดฎเดพเดฃเต, เด เดคเดพเดฏเดคเต: เดเตเดตเดพเตผเดเตเดเดธเต เดเดฃเดเตเดฑเตเดฑเตผ เดเตเตบเดซเดฟเดเดฑเตเดทเตป, AMQP เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดตเดฟเดตเดฐเดเตเดเดณเตเด เดเตเดฒเดฏเดจเตเดฑเต เดเตเดฐเตเดกเตปเดทเตเดฏเดฒเตเดเดณเตเด. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดฒเตเดฒเดพ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดกเดพเดฑเตเดฑเดฏเตเด เดเดฐเดฟเดเดคเตเดคเต เดธเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต, เดเดจเตเดจเดพเตฝ เดเตเดตเดพเตผเดเตเดเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดชเตเดทเดจเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเตพ เด เดตเดฏเต เดฎเดจเดเดชเตเตผเดตเตเดตเด เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเด.
เดเดฃเดเตเดเดฑเตเดเตพ
เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟ เดซเดฏเตฝ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเดชเตเตฝ เดธเดฎเดฏเดคเตเดคเต เดเดฃเดเตเดฑเตเดฑเตผ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดจเตฝเดเดพเด:
mp.messaging.outgoing.orders.connector=smallrye-amqp
mp.messaging.incoming.orders.connector=smallrye-amqp
เดเดพเดฐเตเดฏเดเตเดเตพ เดฒเดณเดฟเดคเดฎเดพเดเตเดเดพเตป, "เดเตผเดกเดฑเตเดเตพ" เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดเตเดเตพ เดเดฐเต เดธเดจเตเดฆเตเดถ เดเตเดฏเต เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเต. เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเดฒเต "เดธเตเดฅเดฟเดฐเตเดเดฐเดฃเดเตเดเตพ" เดตเดฟเดฒเดพเดธเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดเดฐเต เดเตเดฏเต เดเดชเดฏเตเดเดฟเดเตเดเตเด.
AMQP เด เดตเดธเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเต
เดเดเดชเตเตฝ เดธเดฎเดฏเดคเตเดคเต, AMQP เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดนเตเดธเตเดฑเตเดฑเตเดจเดพเดฎเดตเตเด เดชเตเตผเดเตเดเต เดจเดฎเตเดชเดฑเตเด เด เดเตเดเดพเดคเดฎเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เด เดต เดเตเดคเตเดคเดฟเดตเดฏเตเดเตเดเดฃเด. AMQ เดเตบเดฒเตเตป เดธเตเดทเตโเดเดฟเดเตเด เดเตเตบเดซเดฟเดเตโเดฎเดพเดชเตเดชเดฟเตฝ เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เด เดคเดฟเดจเดพเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเดฟเดฒเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดตเดดเดฟ เดเดเตเดเตพ เด เดตเดฏเต เดจเดฟเตผเดตเตเดตเดเดฟเดเตเดเตเด:
spec:
template:
spec:
containers:
- env:
- name: AMQP_HOST
valueFrom:
configMapKeyRef:
name: quarkus-config
key: service.host
- name: AMQP_PORT
valueFrom:
configMapKeyRef:
name: quarkus-config
key: service.port.amqp
เดเตเดฐเตเดกเตปเดทเตเดฏเดฒเตเดเตพ
เดเดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดเตเดเดณเตเดเต เด เดชเตเดเตเดท เดเดงเดฟเดเดพเดฐเดฟเดเดฎเดพเดเตเดเดพเตป เดธเตเดตเดจ เด เดเตเดเตเดฃเตเดเต เดเตเดเตเดเตบ เดเดชเดฏเตเดเดฟเดเตเดเดพเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดเดฆเตเดฏเด เดชเตเดกเดฟเดจเตเดฑเต เดซเดฏเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃ เดเตเดเตเดเตบ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดทเตโเดเดพเดจเตเดธเตเดค เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดธเตเดดเตโเดธเต เดธเตเดทเตโเดเดฟเดเตเดเดฃเด:
public class MessagingCredentialsConfigSource implements ConfigSource {
private static final Set<String> propertyNames;
static {
propertyNames = new HashSet<>();
propertyNames.add("amqp-username");
propertyNames.add("amqp-password");
}
@Override
public Set<String> getPropertyNames() {
return propertyNames;
}
@Override
public Map<String, String> getProperties() {
try {
Map<String, String> properties = new HashMap<>();
properties.put("amqp-username", "@@serviceaccount@@");
properties.put("amqp-password", readTokenFromFile());
return properties;
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
@Override
public String getValue(String key) {
if ("amqp-username".equals(key)) {
return "@@serviceaccount@@";
}
if ("amqp-password".equals(key)) {
try {
return readTokenFromFile();
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
return null;
}
@Override
public String getName() {
return "messaging-credentials-config";
}
private static String readTokenFromFile() throws IOException {
return new String(Files.readAllBytes(Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/token")), StandardCharsets.UTF_8);
}
}
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฐเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดจเดพเตฝ, เดเดฐเต GraalVM เดตเตเตผเดเตเดตเตฝ เดฎเตเดทเตเตป เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดเดเตเดเดจเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเด เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพเดเตเดเต, เด
เดจเตเดฌเดจเตเดง เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดเดพเดฃเตเด
เดคเตเดเตผเดจเตเดจเต, เด เดตเดฟเดเต เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เดชเดพเดฒเดฟเดเตเดเต, เดจเดฟเดเตเดเตพ เดเดฑเดตเดฟเดเด เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดฏเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต:
git clone https://github.com/EnMasseProject/enmasse-example-clients
cd enmasse-example-clients/quarkus-example-client
oc new-project myapp
mvn -Pnative -Dfabric8.mode=openshift -Dfabric8.build.strategy=docker package fabric8:build fabric8:resource fabric8:apply
เด เดเดฎเดพเตปเดกเตเดเตพเดเตเดเต เดถเตเดทเด, เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ AMQ เดเตบเดฒเตเดจเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดเดฑเดตเดฟเดเดเตเดเตพ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดตเดฐเต เดเดฐเดเดญเดฟเดเตเดเดฟเดฒเตเดฒ.
เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดเดตเดฟเดงเดพเดจเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต
เดเดชเตเดชเตเตพ เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดเดเตเดเดณเตเดเต เด เดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฑเดตเดฟเดเดเตเดเตพ เดธเดเตเดเดฎเดพเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต: 1) เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดตเดฟเดฒเดพเดธ เดเดเด; 2) เดเดเตเดเตพ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดฒเดพเดธเดเตเดเตพ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดตเดฟเดฒเดพเดธเด; 3) เดเตเดฒเดฏเดจเตเดฑเต เดเตเดฐเตเดกเตปเดทเตเดฏเดฒเตเดเตพ เดธเดเตเดเดฎเดพเดเตเดเดพเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ.
เดตเดฟเดฒเดพเดธ เดธเตเดฅเดฒเด
AMQ เดเตบเดฒเตเดจเดฟเดฒเต เดเดฐเต เด เดกเตเดฐเดธเตโเดธเตโเดชเตเดธเต เดเดฌเตโเดเดเตเดฑเตเดฑเต เดเดจเตเดจเดคเต เดเดฃเดเตเดทเตป เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเตเดเดณเตเด เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃ, เด เดเดเตเดเดพเดฐ เดจเดฏเดเตเดเดณเตเด เดชเดเตเดเดฟเดเตเดจเตเดจ เดเดฐเต เดเตเดเตเดเด เดตเดฟเดฒเดพเดธเดเตเดเดณเดพเดฃเต. เดจเดฟเดเตเดเตพ เดเดฐเต เดตเดฟเดฒเดพเดธ เดเดเด เดธเตเดทเตโเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดเดเตเดเดจเต เดคเตเดฑเดจเตเดจเตเดเดพเดเตเดเดชเตเดชเตเดเตเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเด:
apiVersion: enmasse.io/v1beta1
kind: AddressSpace
metadata:
name: quarkus-example
spec:
type: brokered
plan: brokered-single-broker
endpoints:
- name: messaging
service: messaging
exports:
- name: quarkus-config
kind: configmap
เดตเดฟเดฒเดพเดธเดเตเดเตพ
เดธเดจเตเดฆเตเดถเดเตเดเตพ เด เดฏเดเตเดเดพเดจเตเด เดธเตเดตเตเดเดฐเดฟเดเตเดเดพเดจเตเด เดตเดฟเดฒเดพเดธเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดจเตเด เดเดฐเต เดคเดฐเด เดเดฃเตเดเต, เด เดคเต เด เดคเดฟเดจเตเดฑเต เดธเตเดฎเดพเดจเตเดฑเดฟเดเตเดธเดฟเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต, เด เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเดฃเตเด เดตเดฟเดญเดตเดเตเดเดณเตเดเต เดเดฃเตเดฃเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฒเดพเดจเตเด. เดตเดฟเดฒเดพเดธเด เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดคเตเดชเตเดฒเต:
apiVersion: enmasse.io/v1beta1
kind: Address
metadata:
name: quarkus-example.orders
spec:
address: orders
type: queue
plan: brokered-queue
เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดเดชเดฏเตเดเตเดคเดพเดตเต
เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฏ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเต เดจเดฟเดเตเดเดณเตเดเต เดตเดฟเดฒเดพเดธเดเตเดเดณเดฟเดฒเตเดเตเดเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เด เดฏเดฏเตโเดเตเดเดพเดจเตเด เดธเตเดตเตเดเดฐเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเต เดเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดจเดฟเดเตเดเตพ เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดเดตเดฟเดงเดพเดจเดคเตเดคเดฟเตฝ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดธเตเดทเตโเดเดฟเดเตเดเดฃเด. เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ, เดเดฐเต เดเดชเตเดชเตบเดทเดฟเดซเตเดฑเตเดฑเต เดธเตเดตเดจ เด เดเตเดเตเดฃเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฒเดฏเดจเตเดฑเตเดเดณเต เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. "เดธเตผเดตเตเดธเต เด เดเตเดเตเดฃเตเดเต" เดเดจเตเดจ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดคเตเดชเตเดฒเต:
apiVersion: user.enmasse.io/v1beta1
kind: MessagingUser
metadata:
name: quarkus-example.app
spec:
username: system:serviceaccount:myapp:default
authentication:
type: serviceaccount
authorization:
- operations: ["send", "recv"]
addresses: ["orders"]
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด เดจเตเดฎเดคเดฟเดเตพ
AMQP เดเตปเดกเตโเดชเตเดฏเดฟเดจเตเดฑเต เดตเดฟเดตเดฐเดเตเดเตพ เดเตพเดเตเดเตเตผเดเตเดเดพเตป เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเด เดเตเตบเดซเดฟเดเตโเดฎเดพเดชเตเดชเต AMQ เดเตบเดฒเตเดจเดพเดฏเดฟ เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดฑเตเดณเตเด เดฑเตเตพเดฌเตเตปเดกเดฟเดเดเตเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: quarkus-config
spec:
rules:
- apiGroups: [ "" ]
resources: [ "configmaps" ]
verbs: [ "create" ]
- apiGroups: [ "" ]
resources: [ "configmaps" ]
resourceNames: [ "quarkus-config" ]
verbs: [ "get", "update", "patch" ]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: quarkus-config
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: quarkus-config
subjects:
- kind: ServiceAccount
name: address-space-controller
namespace: amq-online-infra
เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเดเตพ เดเดเตเดเดจเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเด
เดจเดฟเดเตเดเตพเดเตเดเต เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดคเตเดชเตเดฒเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
cd enmasse-example-clients/quarkus-example-client
oc project myapp
oc apply -f src/main/resources/k8s/addressspace
oc apply -f src/main/resources/k8s/address
เด เดชเตเดเตเดท เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดฑเดชเตเดชเดฟเดเตเดเตฝ
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฐเดเดญเดฟเดเตเดเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดเดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด เดจเตเดฌเดจเตเดง เดตเดฟเดฒเดพเดธเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต เดเดจเตเดจเตเด เดธเดเตเดตเดฎเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
until [[ `oc get address quarkus-example.prices -o jsonpath='{.status.phase}'` == "Active" ]]; do echo "Not yet ready"; sleep 5; done
เด เดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฑเตเดเตเดเต URL เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด (เดฌเตเดฐเตเดธเดฑเดฟเตฝ เด เดตเดฟเดฒเดพเดธเด เดคเตเดฑเดเตเดเตเด):
echo "http://$(oc get route quarkus-example-client -o jsonpath='{.spec.host}')/prices.html"
AMQ เดเตบเดฒเตเดจเดฟเตฝ เดธเดจเตเดฆเตเดถเดเตเดเตพ เด เดฏเดฏเตเดเตเดเตเดเดฏเตเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ เดเดฟเดเตเดเดฑเตเดฑเตเดเตพ เดเดพเดฒเดพเดเดพเดฒเดเตเดเดณเดฟเตฝ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดฌเตเดฐเตเดธเตผ เดเดพเดฃเดฟเดเตเดเดฃเด.
เดธเดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต
เด เดคเดฟเดจเดพเตฝ เดเดเตเดเตพ เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ AMQP เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดตเดพเตผเดเตเดเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดดเตเดคเดฟ, Red Hat OpenShift เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเต, AMQ เดเตบเดฒเตเตป เดเตเตบเดซเดฟเดเดฑเตเดทเตป เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เด เดคเดฟเดจเตเดฑเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฟ. เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเดฟ เดธเดจเตเดฆเตเดถเดฎเดฏเดฏเตโเดเตเดเตฝ เดธเดเดตเดฟเดงเดพเดจเด เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเตพ เดเดเตเดเตพ เดธเตเดทเตโเดเดฟเดเตเดเต.
เดเดคเต เดเตเดตเดพเตผเดเตเดเดธเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดชเดฐเดฎเตเดชเดฐ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดชเตเดคเดฟเดฏเดคเตเด เดฐเดธเดเดฐเดตเตเดฎเดพเดฏ เดเดฐเตเดชเดพเดเต เดเดพเดฐเตเดฏเดเตเดเตพ เดฎเตเดจเตเดจเดฟเดฒเตเดฃเตเดเต, เดคเตเดเดฐเตเด!
เด
เดตเดฒเดเดฌเด: www.habr.com